当你创建一个Serializable to XML的对象时,如果标有[XmlElement]属性的属性在名称的末尾(不论属性)有一个名为“Specified”的朋友,那么:
[XmlType(TypeName="XmlAble"),Serializable]
public class XmlAble
{
[XmlElement]
public DateTime MyDate { get { return MyDateField; } set { MyDateField = value; MyDateSpecified = true; } }
private DateTime MyDateField;
[XmlIgnore]
public bool MyDateSpecified
{get;set;}
}
该boolean标志将用于决定第一个属性(在我的示例中为MyDate)是否完全被序列化。
在.NET Fiddle播放此示例,您将看到我的意思。
为什么它以如此笨重的方式运行(我认为基于字符串包含的属性名称的任何内容都非常笨重),但没有文档呢?