我有一个属性。
[XmlElement]
public string[] Emails { get; set; }
该属性在构造函数中初始化为string[0]。
如果我对此对象进行XML序列化和反序列化,该属性将为NULL。
如何告诉XML序列化程序使用空数组而不是NULL来表示该属性?
[XmlElement]
public string[] Emails { get; set; }
该属性在构造函数中初始化为string[0]。
如果我对此对象进行XML序列化和反序列化,该属性将为NULL。
如何告诉XML序列化程序使用空数组而不是NULL来表示该属性?
五年后... :) 使用List<>替换Array对我有帮助。
[XmlElement (IsNullable = false)]
public List<string> Emails {get;set;}
{get; set;}
,因此如果设置为null
(或尝试在 getter 中返回null
),它将使用空数组。编辑:只需确保在get
上进行检查时,还要将空数组存储在后备字段中,而不仅仅是返回新实例。 - Chris Sinclairnull
的数组(和集合?),并将它们设置为适当的空集合的新实例。在调用中央反序列化方法时,让它通过此实用程序运行。 - Chris Sinclair