Я пытаюсь сериализовать некоторые объекты, полученные из сторонней библиотеки .NET Lib, в файл XML.
Когда я Go To Definition для объекта, некоторые из свойств этого объекта помечаются как [XMLIgnore]
Есть ли способ сказать моему System.Xml.Serialization.XmlSerializer игнорировать тот факт, что некоторые свойства имеют этот атрибут и что он должен сериализовать все в объекте.
Я, вероятно, мог бы получить исходный код и перекомпилировать его без атрибутов XMLIgnore, но было бы неплохо, если бы у XmlSerializer было какое-нибудь хорошее свойство переопределения, например
XmlSerializer xmls = new XmlSerializer(
typeof(MyObject),
Settings.DoNotApplyXMLAttributeRules
);
заранее спасибо
ИЗМЕНИТЬ
Попробовали XmlAttributeOverrides, как было предложено, но не получили особой радости. Вот определение объекта (оно взято из 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);