En C#, estoy tratando de serializar claseA en XML:de clase Serialize ToString() como XmlElement
[Serializable]
public ClassA
{
[XmlElement]
public string PropertyA { get; set; } // works fine
[XmlElement]
public ClassB MyClassB { get; set; }
}
[Serializable]
public ClassB
{
private string _value;
public override string ToString()
{
return _value;
}
}
Por desgracia, el resultado en serie es:
<PropertyA>Value</PropertyA>
<ClassB />
En cambio, lo quiero ser:
<PropertyA>Value</PropertyA>
<ClassB>Test</ClassB>
... suponiendo _value == "Test"
. ¿Cómo hago esto? ¿Tengo tengo para proporcionar una propiedad pública en ClassB para _value
? ¡Gracias!
ACTUALIZACIÓN:
Mediante la implementación de la interfaz IXmlSerializable en ClassB (shown here # 12), se genera el siguiente código XML:
<PropertyA>Value</PropertyA>
<ClassB>
<Value>Test</Value>
</ClassB>
Esta solución es casi aceptable, pero sería bueno deshacerse de las etiquetas. ¿Algunas ideas?
¡Ahh, me has mostrado el problema! Estaba usando 'WriteElementString (" Value ", _value)' en lugar de 'WriteString (_value)'. Ahora mi XML se ve como yo quiero: ' Prueba ' –
Pakman