tengo la clase siguiente:Serialize propiedad como atributo xml en el Elemento
[Serializable]
public class SomeModel
{
[XmlElement("SomeStringElementName")]
public string SomeString { get; set; }
[XmlElement("SomeInfoElementName")]
public int SomeInfo { get; set; }
}
Qué (cuando se rellena con algunos datos de prueba) y serializado usando XmlSerializer.Serialize() da como resultado el siguiente código XML:
<SomeModel>
<SomeStringElementName>testData</SomeStringElementName>
<SomeInfoElementName>5</SomeInfoElementName>
</SomeModel>
lo que necesita tener es:
<SomeModel>
<SomeStringElementName Value="testData" />
<SomeInfoElementName Value="5" />
</SomeModel>
¿hay una manera de especificar esto como atributos ingenio ¿No estoy escribiendo mi propio código de serialización personalizado?
Sí, eso me da el esquema XML que necesito pero agrega un nivel innecesario de indirección y complejidad al modelo. Ahora, en lugar de Object.SomeProperty, tengo Object.SomeProperty.Value. Me doy cuenta de que podría no serlo en ambos sentidos con la serialización incorporada, pero esa es la esencia de la pregunta. – IUnknown
Así es como funciona el serializador incorporado. –
Sé que esto es algo antiguo, pero agregaría operaciones de conversión implícitas de 'T' a' SomeInfo 'y viceversa. –
Shago