2010-03-13 18 views
9

Esiste una libreria equivalente per JAXB in .NET? Sto cercando di convertire un XML che ottengo in una classe .NET. Ho l'XSD, ma non sono sicuro di come convertire l'XML ricevuto in una classe concreta? Ho usato il XSD tool per generare una classe dallo schema, ma quello che voglio per convertire l'XML che ricevo al volo su un oggetto con cui posso lavorare in codice.Equivalente JAXB .NET?

Ho visto il thread here che si occupa di questo, ma la mia query è - Voglio che l'oggetto creato contenga i dati che ricevo nell'XML (cioè i valori dei campi devono essere compilati).

risposta

0

questo è un modo molto migliore e più vicino a quello che stavo cercando:

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

Non dire che ti sbagli , solo curioso perché questa soluzione sia migliore di quella di Mike Due. +1 una volta che rispondi. – JagWire

+1

La tua domanda richiede XML => oggetto. La tua risposta fa il contrario: object => XML. – ViToni

10

È possibile utilizzare xsd.exe per generare la classe e quindi utilizzare XmlSerializer nel codice per popolare la classe. Per esempio, se xsd.exe crea una classe chiamata Foo si potrebbe scrivere:

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