我正在尝试将从第三方.NET Lib获得的一些对象序列化为XML。
当我对对象进行Go To Definition时,该对象的某些属性被标记为[XMLIgnore]
有没有办法告诉我的System.Xml.Serialization.XmlSerializer忽略以下事实:某些属性具有该属性,并且应该序列化对象中的所有内容。
我可能可以获得源代码并在不使用XMLIgnore属性的情况下重新编译它,但是如果XmlSerializer有一些好的重写属性(如
XmlSerializer xmls = new XmlSerializer(
typeof(MyObject),
Settings.DoNotApplyXMLAttributeRules
);提前感谢
编辑
曾按建议尝试过XmlAttributeOverrides,但没有多少joy。这是对象定义(来自FlickrAPI的照片)
[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);发布于 2009-09-05 17:02:22
用途:
XmlAttributeOverrideshttp://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
(见第一注)
https://stackoverflow.com/questions/1383755
复制相似问题