继我最近关于大型复杂对象作为 Web 服务结果的问题之后。我一直在考虑如何确保所有未来的子类都可序列化为 XML。
现在,显然我可以实现IXmlSerializable接口,然后将读取器/写入器扔给它,但我想避免这种情况,因为这意味着我需要在任何时候实例化读取器/写入器,并且 99.99% 的时间我将使用一个字符串,所以我可以自己写。
但是,要序列化为 XML,我只是用Xml 装饰类及其成员???属性(XmlRoot,XmlElement等),然后将其传递给XmlSerializer和StringWriter以获取字符串。这一切都很好。我打算将返回字符串的方法放入通用实用程序方法中,所以我不需要担心类型等。
这与我有关的是:如果我不使用所需属性装饰类,则直到运行时才会引发错误。
有没有办法强制属性装饰?这可以用 FxCop 完成吗?(我还没用过 FxCop)
更新:
很抱歉耽搁了这些家伙,还有很多事情要做!
绝对喜欢在测试用例中使用反射而不是诉诸 FxCop(喜欢将所有东西放在一起)的想法。Fredrik Kalseth 的回答非常棒,感谢您包含代码,因为它可能会让我有点挖掘弄清楚如何自己做!
+1 给其他人提供类似的建议:)