在嘗試回答另一個問題時,我將C#對象序列化爲XML字符串。令人驚訝的是,這是最短的代碼片段我能想出:更簡單的方式將C#類序列化爲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());
結果是好的:
<?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>
但片段是比我想應該是更加複雜。我不相信你必須知道編碼和MemoryStream這個簡單的任務。
是否有更簡單的方法將對象序列化爲XML字符串?
如果你不做'GetStringBuilder()' – 2009-11-15 21:04:33
更短,謝謝,SQL Server只接受UTF-8版本。我猜這就像在C#中一樣簡單... – Andomar 2009-11-16 12:00:08
@Andomar:我之前沒有看到過這個問題......你可以使用我的Utf8StringWriter類來避免這些代碼。請參閱http://stackoverflow.com/questions/3862063 – 2010-10-05 08:49:59