Mentre provavo a rispondere a un'altra domanda, stavo serializzando un oggetto C# su una stringa XML. Era sorprendentemente difficile; questo è stato il più breve frammento di codice potrei venire con:Un modo più semplice per serializzare la classe C# come testo XML
var yourList = new List<int>() { 1, 2, 3 };
var ms = new MemoryStream();
var xtw = new XmlTextWriter(ms, Encoding.UTF8);
var xs = new XmlSerializer(yourList.GetType());
xs.Serialize(xtw, yourList);
var encoding = new UTF8Encoding();
string xmlEncodedList = encoding.GetString(ms.GetBuffer());
Il risultato è a posto:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfInt
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<int>1</int>
<int>2</int>
<int>3</int>
</ArrayOfInt>
Ma il frammento è più complicato di quanto penso che dovrebbe essere. Non posso credere che tu debba sapere su encoding e MemoryStream per questo semplice compito.
C'è un modo più breve per serializzare un oggetto in una stringa XML?
Ancora più breve se non si esegue 'GetStringBuilder()' –
Grazie, SQL Server accetta solo la versione UTF-8. Immagino sia semplice come succede in C# ... – Andomar
@Andomar: non avevo mai visto questa domanda prima ... puoi evitare parte di questo codice usando la mia classe Utf8StringWriter. Vedi http://stackoverflow.com/questions/3862063 –