2010-03-13 16 views
9

¿Hay una biblioteca equivalente para JAXB en .NET? Estoy tratando de convertir un XML. Obtengo una clase .NET. Tengo el XSD, pero no estoy seguro de cómo convertir el XML recibido en una clase concreta. Usé el XSD tool para generar una clase desde el esquema, pero lo que quiero es convertir el XML que recibo sobre la marcha a un objeto con el que puedo trabajar en el código..NET JAXB equivalente?

He visto el hilo here que trata de esto, pero mi consulta es - Quiero que el objeto creado contenga los datos que recibo en el XML (es decir, los valores de campo deben ser rellenados).

Respuesta

0

Esta es una forma mucho mejor y más cerca de lo que estaba buscando:

static public string serializeObject(ProductPriceLines objecteToSerialize) 
    { 
     System.Xml.Serialization.XmlSerializer mySerializer = new System.Xml.Serialization.XmlSerializer(typeof(ProductPriceLines)); 

     System.IO.MemoryStream t = new System.IO.MemoryStream(); 
     mySerializer.Serialize(t, objecteToSerialize); 


     UTF8Encoding utf = new UTF8Encoding(); 
     string strbytes = utf.GetString(t.ToArray()); 


     return strbytes; 
    } 
+1

No decir que estás equivocado , solo curiosidad por qué esta solución es mejor que Mike Two. +1 una vez que responde. – JagWire

+1

Su pregunta requiere un objeto XML =>. Tu respuesta lo hace al revés: object => XML. – ViToni

10

Puede usar xsd.exe para generar la clase y luego usar XmlSerializer en su código para completar la clase. Por ejemplo, si xsd.exe crea una clase llamada Foo podría escribir:

Foo someFoo; 
using (var stream = new FileStream("foo.xml", FileMode.Open)) 
{ 
    var serializer = new XmlSerializer(typeof(Foo)); 
    someFoo = serializer.Deserialize(stream); 
}