将具有属性[XmlElement]的字段标记为IsRequired
本文关键字:字段 记为 IsRequired XmlElement 属性 | 更新日期: 2023-09-27 18:25:14
我有一个要序列化的类
[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,则输出XML不包含Url节点。如何将其标记为必填字段,以便每次都创建Url节点?
IsNullable
属性应该可以做到这一点。
[System.Xml.Serialization.XmlElementAttribute(Order = 2,IsNullable=true)]
如果它设置为true,它应该生成标记(根据MSDN)。
如果
IsNullable
属性设置为true,则xsi:nil
属性为为已设置为null引用的类成员生成(Visual Basic中没有任何内容)。例如,如果设置名为MyStringArray
到null
引用(在Visual Basic中为Nothing)XmlSerializer生成以下XML代码。
<MyStringArray xsi:nil = "true" />