2011-07-14 51 views
6

Tengo un Xml que necesito deserializar en un objeto. El XML es:C# - Xml Elemento con atributo y valor de nodo

<Person> 
    <Type id="1234">Bob</Type> 
</Person> 

y las clases son:

public class Person { public Type Type; } 
public class Type { 
    [XmlAttribute("id")] 
    public string id; 
    // another property for value "Bob" here, such as: 
    public string value; // ???? 
} 

me gustaría deserializar este XML utilizando XmlSerializer.Deserialize, en los objetos concretos anterior (evitando el uso de XPath, etc.)

¿Con qué atributo Xml puedo decorar la clase "Tipo" para que no solo tenga un atributo "id" sino también un valor ("Bob")?

+0

¿Dónde está el valor ' "Bob" 'se almacena en C#? – ChaosPandion

+0

eso es ... no es ahora. Necesito saber cómo representarlo en el objeto y con qué atributo XmlAttribute (si existe) para marcarlo. – dotNetkow

+0

Realmente necesita cambiar el nombre de 'Type' a' PersonType' o algo así porque entra en conflicto con 'System.Type' –

Respuesta

8

Habría que añadir una propiedad como

[XmlText] 
public string Text; 
+0

ah, lo tengo. ¡Sabía que era algo simple! ¡Gracias! – dotNetkow

Cuestiones relacionadas