? Estoy tratando de serializar algunos objetos obtenidos de una .NET Lib de terceros a un archivo XML.¿Cómo ignoro un atributo [XMLIgnore]
Cuando Go To Definition
para el objeto, algunas de las propiedades de ese objeto se marcan como [XMLIgnore]
¿Hay alguna manera de decirle a mi System.Xml.Serialization.XmlSerializer
ignorar el hecho de que algunas propiedades tienen ese atributo y que deben serializar todo en el objeto.
probablemente podría obtener el fuente y compilarlo sin los atributos XMLIgnore
pero sería bueno si tenían algún XmlSerializer
bonita propiedad de anulación como
XmlSerializer xmls = new XmlSerializer(
typeof(MyObject),
Settings.DoNotApplyXMLAttributeRules
);
Gracias de antemano
EDITAR
Han intentado XmlAttributeOverrides como se sugirió pero no h arando mucha alegría Aquí está la definición de objeto (que es del FlickrAPI una foto)
[Serializable]
public class Photo
{
//Some code omitted
[XmlIgnore]
public string LargeUrl { get; }
}
Y aquí está el código de serializador que he escrito ... todavía no funciona ...
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);
que han intentado pero no alegría. Cualquier otra sugerencia sería apreciada. He agregado el código a la pregunta original en caso de que esté haciendo algo tonto. –
LargeUrl no tiene un setter, por lo que incluso sin el atributo XmlIgnore, no se serializará. – manji
ah bien. Lo he solucionado creando una clase proxy para almacenar los valores y luego serializarlos por separado. –