我有一个我要序列化的课程
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://xyz.com/schema")]
public class Customer
{
[System.Xml.Serialization.XmlElementAttribute(Order = 0)]
public int Id { get; set; }
[System.Xml.Serialization.XmlElementAttribute(Order = 1)]
public string Name { get; set; }
[System.Xml.Serialization.XmlElementAttribute(Order = 2)]
public string Url{ get; set; }
[System.Xml.Serialization.XmlElementAttribute(Order = 3)]
public string Count { get; set; }
}
反序列化时,如果Url为null,则out XML不包含Url Node。 如何将其标记为必填字段,以便每次都创建Url节点?
答案 0 :(得分:2)
IsNullable
属性应该这样做。
[System.Xml.Serialization.XmlElementAttribute(Order = 2,IsNullable=true)]
如果设置为true,则应生成标记(根据MSDN)。
如果
IsNullable
属性设置为true,则xsi:nil
属性为 为已设置为空引用的类成员生成 (在Visual Basic中没有任何内容)。例如,如果您设置了一个名为的字段MyStringArray
到null
引用(在Visual Basic中没有任何内容), XmlSerializer生成以下XML代码。
<MyStringArray xsi:nil = "true" />