如何忽略[XMLIgnore]属性

Eoi*_*ell 8 .net c# xml xml-serialization .net-3.5

我正在尝试将从第三方.NET Lib获得的一些对象序列化为XML文件.

当我Go To Definition为对象时,该对象的某些属性被标记为[XMLIgnore]

有没有办法告诉我System.Xml.Serialization.XmlSerializer忽略一些属性具有该属性并且应该序列化对象中的所有内容的事实.

我可能获得源代码并重新编译它没有XMLIgnore属性,但如果XmlSerializer有一些很好的覆盖属性,它会很好

XmlSerializer xmls = new XmlSerializer(
   typeof(MyObject),
   Settings.DoNotApplyXMLAttributeRules
);
Run Code Online (Sandbox Code Playgroud)

提前致谢


编辑

已按照建议尝试了XmlAttributeOverrides但没有太多的乐趣.这是对象定义(来自FlickrAPI的照片)

[Serializable]
public class Photo
{
    //Some code omitted
    [XmlIgnore]
    public string LargeUrl { get; }

}
Run Code Online (Sandbox Code Playgroud)

继承了我写过的序列化代码......仍然无效......

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);
Run Code Online (Sandbox Code Playgroud)

man*_*nji 13

使用:

XmlAttributeOverrides
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.xmlignore.aspx

编辑:(关注编辑问题)

该属性必须是公共的,并且具有要序列化的getter和setter.

http://msdn.microsoft.com/en-us/library/182eeyhh%28VS.85%29.aspx

((见第一注))