- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有没有办法让 XmlSerializer 默认忽略所有成员,除非我另有说明?
我有一个基类和几个具有很多成员的派生类,但大多数我不想被序列化。只有少数几个可以接受序列化。
最佳答案
不,你不能这样做。
XmlSerializer 使用“选择退出”过程 - 它将序列化所有内容(所有公共(public)属性),除非您使用 [XmlIgnore]
属性明确选择退出。没有办法改变这种行为。
另一方面,.NET 3.5 DataContractSerializer 采用另一种方法 - 选择加入。它不会序列化任何内容,除非您通过使用 [DataMember]
装饰您的成员来明确告诉它这样做。
那么也许 DataContract 序列化程序适合您?它还有一些优点(不需要无参数构造函数,也可以序列化内部和私有(private)属性,如果需要,它还可以序列化字段而不是属性),并且它针对速度进行了调整。也有一些缺点 - 它不支持 XML 节点中的属性 - 因此您必须根据您的要求进行选择。
Dan Rigsby 对两者进行了很好的比较- 检查一下!
马克
关于c# - .NET XmlIgnore 默认情况下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1495716/
我有一个类,包含标记为 [XmlIgnore] 的属性 Brush MyBrush。然而,它在流中序列化,导致在尝试通过 XamlReader 读取时出现问题。 我做了一些测试,例如当更改属性的可见性
我有一个 LINQ 2 SQL 生成的类,我想通过网络服务公开。有一些我不想使用的内部属性。 通常我会在其中放入 [XmlIgnore],但因为属性在生成的一半中,所以我不能这样做。 我一直在考虑在
我有一个我正在尝试序列化的对象,输出看起来像这样: blabla 其中 Item 是类根使用的类。 [Serializable] [XmlTy
我在标有 XmlIgnore 属性的基类中有一个属性。当我派生此类并且不覆盖(而不是 Xml-attributes in interfaces and abstract classes )此属性时,是
我有 Animal 类以及继承自它的 Dog 和 Cat 类。 Animal 类具有属性 X。我想为没有“X”属性的“狗”和具有“X”属性的“猫”生成 XML。 XmlIgnore 在这里没有按我预期
有没有办法让 XmlSerializer 默认忽略所有成员,除非我另有说明? 我有一个基类和几个具有很多成员的派生类,但大多数我不想被序列化。只有少数几个可以接受序列化。 最佳答案 不,你不能这样做。
我正在尝试将从第 3 方 .NET Lib 获得的一些对象序列化为 XML 文件。 当我为对象Go To Definition 时,该对象的一些属性被标记为[XMLIgnore] 有什么方法可以告诉我
有什么方法可以防止属性在 .NET Core 中被 XML 序列化(我们之前通常会使用 [XmlIgnore] 属性来做到这一点)? 最佳答案 XmlIgnore 不在 .net 核心中(或者 .ne
这个问题在这里已经有了答案: Can attributes be added dynamically in C#? (10 个答案) 关闭 8 年前。 有谁知道如何以编程方式将 [XmlIgnore
我有一个相当大的类要序列化为Xml,为了减少空间浪费,我想有选择地XmlIgnore一些类属性。例如,类中的一个属性被赋值的次数只有十分之一左右,如果我将序列化属性编码如下 [XmlAttribute
我们正在从 XML 序列化/反序列化一个类,但该类中有我们想要排除的属性和字段。 System.NonSerialized 和 System.Xml.Serialization.XmlIgnore 属
我想检查 propertyInfo 以确定 XmlIgnore 属性是否应用于给定属性。我该怎么做? 最佳答案 bool b = type.GetProperty("MyProp")
[TestFixture] public class XmlIgnoreWithNewModifierTest { public class Parent { publ
我有一个 POCO 类,它作为 .NET 3.5 sp1 中的 JSON 字符串发送到浏览器。我只是使用默认的 JSON 序列化,并且有一些我想忽略的字段。我想在它们上面放一个类似于 [System.
我是一名优秀的程序员,十分优秀!