我正在使用 XmlSerializer 为我的班级生成 XML 输出。是否可以创建一个自定义 XMLSerializer,其中所有的 xml 节点都是小写的?我不想将属性添加到我的类中的每个字段字段以指定小写的节点。
谢谢你,安吉拉
这取决于你想做多少工作。添加属性是最简单的选择,但您说您不想这样做。您可以用小写名称命名这些类,但这是一种可怕的处理方式,IMO。
您可以通过使用 - 来告诉XmlSerializer
运行时要做什么,XmlAttributeOverrides
但是您需要使用反射来告诉它您想要调整的所有成员,但请注意:如果您这样做,您必须缓存并重新使用这样的序列化程序;如果您每次都创建一个新的XmlSerializer
via ,您将泄漏程序集内存。XmlAttributeOverrides
MSDN上有一个例子
多年来我见过的最好的例子是在这里找到,由 Daniel Cazzulino 编写。我发现它非常优雅,因为他重写了XmlTextReader
andXmlWriter
以使序列化完全按照他的意愿进行。希望你喜欢阅读他的博客!