【发布时间】:2010-09-06 09:00:23
【问题描述】:
继我最近在Large, Complex Objects as a Web Service Result 上提出的问题之后。我一直在思考如何确保所有未来的子类都可序列化为 XML。
现在,显然我可以实现IXmlSerializable 接口,然后将读取器/写入器扔给它,但我想避免这种情况,因为这意味着我需要在任何时候实例化读取器/写入器,并且99.99% 的时间我将使用 string,所以我可以自己编写。
但是,为了序列化为 XML,我只是用 Xml??? 属性(XmlRoot、XmlElement)装饰类及其成员> 等),然后将其传递给 XmlSerializer 和 StringWriter 以获取字符串。这一切都很好。我打算把返回字符串的方法放到一个通用的实用方法中,这样我就不用担心类型等了。
我关心的是:如果我不使用所需的属性装饰类,直到运行时才会抛出错误。
有没有办法强制属性装饰?这可以用 FxCop 完成吗?(我还没用过 FxCop)
更新:
抱歉耽搁了这些家伙,还有很多事情要做!
绝对喜欢在测试用例中使用反射而不是诉诸 FxCop(喜欢将所有东西放在一起)的想法。Fredrik Kalseth's answer 太棒了,感谢包含代码,因为它可能会让我有点挖掘想自己怎么做!
+1 给其他人以获得类似的建议 :)
【问题讨论】:
标签: c# xml serialization coding-style .net-attributes