c# - ShouldSerialize 用于多个字段
问题描述
我正在尝试与需要某些可选字段的系统(使用 xml)进行通信,具体取决于另一个字段的值。如果我发送一个不需要的,系统会返回一个错误。
我在这种情况下使用了 ShouldSerialize,但我仍然有很多字段和类型。
有没有一种简单的方法可以做到这一点,或者这是错误的方法?我应该使用什么?我正在写很多重复的代码,这感觉不对。
[Serializable()]
public class AEntity
{
public int Id { get; set; }
public int All1 { get; set; }
public int All2 { get; set; }
public int All3 { get; set; }
public bool ShouldSerializeTypeBField1 => CommandControls.IfBNeeded(Id);
public int TypeBField1 { get; set; }
public bool ShouldSerializeTypeBField2 => CommandControls.IfBNeeded(Id);
public int TypeBField2 { get; set; }
public bool ShouldSerializeTypeBField3 => CommandControls.IfBNeeded(Id);
public int TypeBField3 { get; set; }
...
public bool ShouldSerializeTypeCField1 => CommandControls.IfCNeeded(Id);
public int TypeCField1 { get; set; }
public bool ShouldSerializeTypeCField2 => CommandControls.IfCNeeded(Id);
public int TypeCField2 { get; set; }
public bool ShouldSerializeTypeCField3 => CommandControls.IfCNeeded(Id);
public int TypeCField3 { get; set; }
...
}
我想写这样的东西
public bool ShouldSerializeTypeBFields => CommandControls.IfBNeeded(Id);
public bool ShouldSerializeTypeCFields => CommandControls.IfCNeeded(Id);
注意:字段名称实际上并不以TypeBField
;开头 这是一个普通字段名称的占位符,如电话、地址等。
解决方案
推荐阅读
- r - 如何从多个 .txt 文件创建小标题,在列中保留文件名,以及使用文件名将文件分类?
- java - 找不到 org.springframework.boot:spring-boot-starter-cloud-connectors
- flutter - 如何在 Flutter 中的 ExpansionPanellist 中给出扩展面板之间的间距?
- php - 没有定义外键约束的雄辩关系
- linux - Linux删除第一行空格
- python - UNIX/Python - 如何在没有互联网和 pip 的情况下使用 cx_Oracle
- ansible - 需要帮助将两个字典合并在一起
- c++ - cin.ignore 不起作用:即使使用 clear() 也会跳过进一步的输入
- apache-poi - 如何使用 poi 将图片添加到以前创建的 word 文档中
- powershell - 从 csv 列表中获取广告中停用的计算机