是否可以将[XmlAttribute]作为类的默认值?

时间:2010-12-01 10:26:11

标签: c# xml

我有很多要使用XmlSerializer序列化的属性。我需要使用[XmlAttribute]标记每个(简单)属性,以使输出更短。我想知道是否有更简单的方法来做到这一点。有没有办法将它作为类的默认值,以便所有简单的类型属性将被序列化为属性而不是元素?

2 个答案:

答案 0 :(得分:2)

不,基本上。好吧,可以在运行时使用XmlAttributeOverrides完成工作,检查代码中的类型并适当地设置属性,然后确保缓存序列化程序(如果使用时不缓存) XmlAttributeOverrides泄漏内存,因为未收集生成的程序集。但这听起来像更多工作。

重新缩短输出; xml压缩GZip或Deflate非常好......

当然,如果您不需要 xml ,但只需要序列化的数据,还有其他选择。

答案 1 :(得分:0)

您可以创建code snippets

为已设置属性的属性创建一个,并在编写时使用它。