serialize net example deserialize array c# xml serialization schema constraints

c# - net - XML Serialize boolean como 0 y 1



xamarin xml serialization (3)

No, no usar System.Xml.XmlSerializer por defecto: necesitaría cambiar el tipo de datos a un int para lograr eso, o dejar de proporcionar su propio código de serialización (posible, pero no muy divertido).

Sin embargo, simplemente puede postprocesar el XML generado, por supuesto, ya sea usando XSLT, o simplemente usando la sustitución de cadena. Un poco complicado, pero bastante rápido, tanto en tiempo de desarrollo como de ejecución ...

El Esquema XML Parte 2 especifica que una instancia de un tipo de datos que se define como booleano puede tener los siguientes literales legales {verdadero, falso, 1, 0}. El siguiente XML, por ejemplo, cuando se deserializa, establece la propiedad booleana "Emular" en true .

<root> <emulate>1</emulate> </root>

Sin embargo, cuando vuelvo a serializar el objeto al XML, me hago true lugar del valor numérico. Mi pregunta es, ¿hay alguna manera de que pueda controlar la representación booleana en el XML?



También puedes hacer esto usando algún atributo de magia XmlSerializer:

[XmlIgnore] public bool MyValue { get; set; } /// <summary>Get a value purely for serialization purposes</summary> [XmlElement("MyValue")] public string MyValueSerialize { get { return this.MyValue ? "1" : "0"; } set { this.MyValue = XmlConvert.ToBoolean(value); } }

¡También puedes usar otros atributos para ocultar este miembro de intellisense si te ofende! No es una solución perfecta, pero puede ser más rápido que implementar IXmlSerializable.