2012-02-20 28 views
2

我有我想要序列馬克現場爲具有屬性IsRequired [的XmlElement]

[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; } 
} 

反序列化時,如果地址爲null,則出XML沒有包含URL節點的類。 如何將它標記爲必填字段,以便每次都創建Url節點?

+4

你爲什麼不使用'使用的System.Xml.Serialization;'和刪除所有空間前綴? – svick 2012-02-20 10:50:17

回答

2

IsNullable屬性應該這樣做。

[System.Xml.Serialization.XmlElementAttribute(Order = 2,IsNullable=true)] 

如果它設置爲true,它應該生成標記(根據MSDN)。

如果IsNullable屬性設置爲true,則xsi:nil屬性是已設置爲空引用 (在Visual Basic中爲Nothing)類成員產生 。例如,如果您將名爲 MyStringArray的字段設置爲null引用(在Visual Basic中爲Nothing),則 XmlSerializer會生成以下XML代碼。

<MyStringArray xsi:nil = "true" /> 
相關問題