gpt4 book ai didi

c# - .NET XmlIgnore 默认情况下?

转载 作者:太空狗 更新时间:2023-10-30 01:11:58 26 4
gpt4 key购买 nike

有没有办法让 XmlSerializer 默认忽略所有成员,除非我另有说明?

我有一个基类和几个具有很多成员的派生类,但大多数我不想被序列化。只有少数几个可以接受序列化。

最佳答案

不,你不能这样做。

XmlSerializer 使用“选择退出”过程 - 它将序列化所有内容(所有公共(public)属性),除非您使用 [XmlIgnore] 属性明确选择退出。没有办法改变这种行为。

另一方面,.NET 3.5 DataContractSerializer 采用另一种方法 - 选择加入。它不会序列化任何内容,除非您通过使用 [DataMember] 装饰您的成员来明确告诉它这样做。

那么也许 DataContract 序列化程序适合您?它还有一些优点(不需要无参数构造函数,也可以序列化内部和私有(private)属性,如果需要,它还可以序列化字段而不是属性),并且它针对速度进行了调整。也有一些缺点 - 它不支持 XML 节点中的属性 - 因此您必须根据您的要求进行选择。

Dan Rigsby 对两者进行了很好的比较- 检查一下!

马克

关于c# - .NET XmlIgnore 默认情况下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1495716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com