默认情况下,.Net最终将xml序列化为可空类型转换为类似于此的节点
<SomeNode p3:nil="true" xmlns:p3="http://www.w3.org/2001/XMLSchema-instance" />
不幸的是,鉴于我正在序列化的对象模型有许多很多空值,我最终得到一个非常大的xml文档(185mb),它应该小得多,完全删除空节点(20mb)
当我添加webservice引用时,对象定义是自动生成的,所以,幸运的是,它被声明为部分类,我能够创建自己的部分类,添加一堆ShouldSerialize *方法以防止序列化任何空值.
然而,这是相当繁琐的,因为类很大,并且有很多类.
有没有办法可以使用反射,简化在运行时为所有公共属性添加ShouldSerialize *方法的过程?
就像我写的那样,我手动为一些类做了这个,它是高度重复的,100个函数都看起来像这样
public bool ShouldSerializeNotes() { return Notes != null; }
谢谢,
-C
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。