【问题标题】:XmlSerializer and nullable attributesXmlSerializer 和可为空的属性
【发布时间】:2011-03-16 02:36:48
【问题描述】:
我有一个具有许多 Nullable 属性的类,我希望将其作为属性序列化为 XML。这显然是一个禁忌,因为它们被认为是“复杂类型”。因此,我实现了 *Specified 模式,在其中创建了一个附加的 *Value 和 *Specified 属性,如下所示:
[Xml忽略]
公共诠释?年龄
{
得到{返回这个年龄; }
设置 { this.age = value; }
}
[XmlAttribute("年龄")]
公共 int AgeValue
{
得到 { 返回 this.age.Value; }
设置 { this.age = value; }
}
[Xml忽略]
公共布尔年龄值指定
{
得到 { 返回 this.age.HasValue; }
}
这很好——如果“年龄”属性有一个值,它会被序列化为一个属性。如果它没有值,则不会序列化。
问题是,正如我所提到的,我的班级中有很多 Nullable-s,这种模式只会让事情变得混乱和难以管理。
我希望有一种方法可以让 Nullable 对 XmlSerializer 更加友好。或者,如果做不到这一点,一种创建 Nullable 替换的方法是。
有人知道我该怎么做吗?
谢谢。
【问题讨论】:
标签:
c#
.net
attributes
nullable
xmlserializer