- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试将从第 3 方 .NET Lib 获得的一些对象序列化为 XML 文件。
当我为对象Go To Definition
时,该对象的一些属性被标记为[XMLIgnore]
有什么方法可以告诉我的 System.Xml.Serialization.XmlSerializer
忽略某些属性具有该属性并且它应该序列化对象中的所有内容这一事实。
我可能可以获取源代码并在没有 XMLIgnore
属性的情况下重新编译它,但是如果 XmlSerializer
有一些不错的覆盖属性就好了,比如
XmlSerializer xmls = new XmlSerializer(
typeof(MyObject),
Settings.DoNotApplyXMLAttributeRules
);
提前致谢
编辑
已按照建议尝试了 XmlAttributeOverrides,但没有太大的乐趣。这是对象定义(它来自 FlickrAPI for a Photo)
[Serializable]
public class Photo
{
//Some code omitted
[XmlIgnore]
public string LargeUrl { get; }
}
这是我编写的序列化程序代码...仍然无法正常工作...
XmlWriter xtw = XmlWriter.Create( Server.MapPath("~/App_Data/Data.xml") );
XmlAttributes photoAttributes = new XmlAttributes();
photoAttributes.XmlIgnore = false;
XmlAttributeOverrides photoOverrides = new XmlAttributeOverrides();
photoOverrides.Add(typeof(Photo), "LargeUrl", photoAttributes);
XmlSerializer xmlphoto = new XmlSerializer(typeof(Photo), photoOverrides);
最佳答案
使用:
XmlAttributeOverrides
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.xmlignore.aspx
编辑:(在问题编辑之后)
该属性必须是公共(public)的,并且具有要序列化的 getter 和 setter。
http://msdn.microsoft.com/en-us/library/182eeyhh%28VS.85%29.aspx
((见第一注))
关于c# - 如何忽略 [XMLIgnore] 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383755/
我有一个类,包含标记为 [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.
我是一名优秀的程序员,十分优秀!