Me gustaría serializar una clase a XML, asignándole un atributo XML. Fragmento:atributo no serializado por XmlSerializer
[XmlType(TypeName = "classmy")]
public class MyClass2 : List<object>
{
[XmlAttribute(AttributeName = "myattr")]
public string Name { get; set; }
}
public class MyConst
{
public MyConst()
{
MyClass2 myClass2 = new MyClass2 { 10, "abc" };
myClass2.Name = "nomm";
XmlSerializer serializer = new XmlSerializer(typeof(MyClass2));
serializer.Serialize(Console.Out, myClass2);
}
}
Pero el XML resultante es la siguiente
<?xml version="1.0" encoding="IBM437"?>
<classmy xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<anyType xsi:type="xsd:int">10</anyType>
<anyType xsi:type="xsd:string">abc</anyType>
</classmy>
Todo esto está muy bien, con la única excepción de que myClass2.Name no es serializado. Esperaba algo en la línea de
<classmy myattr="nomm" [...]>[...]</classmy>
... ¿Por qué no está serializado y cómo puede ser?
¿Ha decorado con el atributo [Serializable] por encima de su clase? – Rajesh
@Rajesh no habría serializado * en absoluto * si no ... – James
@James Tuve el mismo problema, que él tiene y cuando decoré con serializable resolvió el problema. Especialmente cuando intenta escribir XML. – Rajesh