gpt4 book ai didi

c# - 如何忽略 [XMLIgnore] 属性

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:41 27 4
gpt4 key购买 nike

我正在尝试将从第 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/

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