首页 > 解决方案 > 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;开头 这是一个普通字段名称的占位符,如电话、地址等。

标签: c#xmlserialization

解决方案


推荐阅读