我正在使用XmlSerializer为我的类生成XML输出。是否可以创建一个自定义XMLSerializer,其中所有xml节点都是小写的?我不想在我的类中为每个字段字段添加属性,以小写字母指定节点。
谢谢你, 安吉拉
答案 0 :(得分:4)
这取决于你想做多少工作。添加属性是最简单的选择,但是你说你不想这样做。你可以用小写的名字命名这些类,但这是接近这个的可怕方式,IMO。
你可以告诉XmlSerializer
在运行时使用XmlAttributeOverrides
做什么 - 但是你需要使用反射来告诉它你要调整的所有成员,但请注意:如果你这样做,你必须缓存并重新使用这样的序列化器;如果每次都通过XmlSerializer
创建一个新XmlAttributeOverrides
,则会泄漏程序集内存。
答案 1 :(得分:2)
这些年来我见过的最好的例子是here,由Daniel Cazzulino撰写。我发现它非常优雅,因为它覆盖了XmlTextReader
和XmlWriter
,使序列化完全他想要它做什么。希望你喜欢阅读他的博客!