我的课程很少,有很多属性。将根据特定条件分配这些属性的值。将值分配给少数属性后,我想序列化对象并仅包含那些赋值给它们的道具。
我试过在互联网上搜索这个但我找不到任何运气。
任何关于实施此建议的建议都将受到高度赞赏。
更新
我有一些像
这样的课程class A{
public static string PropA_in_A { get; set; }
public string PropB_in_A { get; set; }
public static string PropC_in_A { get; set; }
public static string PropD_in_A { get; set; }
}
class B{
public static string PropA_in_B { get; set; }
public static string PropB_in_B { get; set; }
public static string PropC_in_B { get; set; }
public static string PropD_in_B { get; set; }
}
class C{
public static string PropA_in_C { get; set; }
public static string PropB_in_C { get; set; }
public static string PropC_in_C { get; set; }
public static string PropD_in_C { get; set; }
}
需要根据条件分配这些类中的属性值。 分配值后,只需要序列化那些赋值给它们的属性。
main()
{
A.PropB_in_A="Some Value";
A.PropA_in_B="Some Value";
A.PropC_in_C="Some Value";
}
在这里,我想仅序列化那些赋值给它们的属性。
答案 0 :(得分:0)
您可以在每个属性上使用XmlElementAttribute并将IsNullable设置为false。
MSDN上有一个示例here。
[XmlElementAttribute(IsNullable = false)]
public string City;
或使用较短的表格:
[XmlElement(IsNullable = false)]
public string City;
编辑:对于可以为空的值类型,您必须跳过一些额外的箍并添加一个属性,告诉序列化程序是否应序列化该值。
public bool ShouldSerializeMyNullableInt()
{
return MyNullableInt.HasValue;
}
请参阅此答案以供参考:Xml serialization - Hide null values