Ho avuto una breve domanda riguardante il datacontractorerializer. Forse è più una questione di flusso. Ho trovato un pezzo di codice che scrive l'xml in un filestream. Fondamentalmente non voglio il file e ho solo bisogno dell'output della stringa.DataContractSerializer - Come posso inviare l'xml a una stringa (a differenza di un file)
public static string DataContractSerializeObject<T>(T objectToSerialize)
{
var fs = new FileStream("test.xml", FileMode.OpenOrCreate);
var serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(fs, objectToSerialize);
fs.Close();
return fs.ToString();
}
fs.ToString() non è ovviamente quello che sto cercando. Quale stream o scrittore etc, posso usare solo per restituire la stringa corretta e non creare un file? Ho dato un'occhiata all'XML creato dal filestream ed è esattamente quello che sto cercando. XmlSerializer ha scritto l'XML un po 'strano e in questo caso preferisco l'output di DataContractSerializer. Qualcuno può indicarmi la giusta direzione?
Looks come te inter cambiato il parametro, dovrebbe essere memStm.Seek (0, SeekOrigin.Begin); – xar
@xar: sì, hai assolutamente ragione - grazie per aver individuato quell'errore - l'ho risolto ora –
Questa soluzione codifica inutilmente da/per utf8. –