Los campos públicos / propiedades de una clase derivada de BindingList <T> no se serializarán
Estoy tratando de serializar una clase que se deriva deEncuadernaciónList (Piso), dóndePiso Es una clase simple que solo contiene una propiedad.Piso.alto
Aquí hay una versión simplificada de mi clase.
[Serializable]
[XmlRoot(ElementName = "CustomBindingList")]
public class CustomBindingList:BindingList<Floor>
{
[XmlAttribute("publicField")]
public string publicField;
private string privateField;
[XmlAttribute("PublicProperty")]
public string PublicProperty
{
get { return privateField; }
set { privateField = value; }
}
}
Serializaré una instancia de CustomBindingList usando el siguiente código.
XmlSerializer ser = new XmlSerializer(typeof(CustomBindingList));
StringWriter sw = new StringWriter();
CustomBindingList cLIst = new CustomBindingList();
Floor fl;
fl = new Floor();
fl.Height = 10;
cLIst.Add(fl);
fl = new Floor();
fl.Height = 10;
cLIst.Add(fl);
fl = new Floor();
fl.Height = 10;
cLIst.Add(fl);
ser.Serialize(sw, cLIst);
string testString = sw.ToString();
TodavíatestString Lo anterior termina estableciéndose en el siguiente XML:
<CustomBindingList xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">
<Floor Height="10" />
<Floor Height="10" />
<Floor Height="10" />
</CustomBindingList>"
¿Cómo obtengo "publicField" o "publicProperty para serializar también?