Domanda

Ho cercato di trovare un modo semplice per XML scrittura utilizzando il XmlReader / XmlWriter. Non mi piace molto utilizzando l'interfaccia "IXmlSerializable", ma io ho scelta per alcuni dei miei classe di dati.

In ogni caso, quello che voglio fare è abbastanza semplice:

private MyClass myObject;
public void WriteXml(XmlWriter writer)
{
    writer.WriteObject(myObject); // <-- this method doesn't exists
}

Così, ho trovato 2 lavoro intorno:

  1. Scrivi la mia routine per scrivere il mio oggetto manualmente. Abbastanza ridicolo poiché .Net già fa di esso.
  2. Crea un nuovo serializzatore utilizzando uno StringWriter e utilizzare il metodo WriteValue (stringa).

non ho ancora testato la seconda ancora, ma penso che probabilmente funzionerà (non sono sicuro a causa del risultato ReadValue).

Quindi la mia domanda è: mi sto perdendo qualcosa di importante o è l'unico modo? O c'è un modo migliore per gestire questo?

Grazie.

È stato utile?

Soluzione

Dopo aver suonato in giro, ho trovato qualcosa di molto semplice. Ecco il codice Stavo giocando con per coloro che si chiedono come ho risolto il mio problema (simile per la lettura ed elemento):

    public static void WriteElement(XmlWriter writer, string name, object value)
    {
        var serializer = new XmlSerializer(value.GetType(), new XmlRootAttribute(name));
        serializer.Serialize(writer, value);
    }

Non so il motivo per cui mi è stato complicando il problema, ma non può essere più semplice di quello.

Altri suggerimenti

Provare a utilizzare la classe XmlDocument. Esso utilizza il XmlNode come base per un facile scrittura di XML. È inoltre possibile serializzare una classe, o di utilizzare la classe DataSet di scrivere xml, o leggere di nuovo in una struttura di tipo set di dati o XmlDocument.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top