2011-07-24 68 views
2

將C#對象轉換爲XmlEmenet的最佳方法是什麼? 我只使用XmlSerializer並導入XmlNode還是有更好的方法?將C#對象轉換爲XmlElement

這是我發現那裏想知道是否有其他更好的方法。

public XmlElement Serialize(XmlDocument document) 
{ 
    XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 
    ns.Add("", ""); 
    XmlElement returnVal; 
    XmlSerializer serializer = new XmlSerializer(this.GetType()); 
    MemoryStream ms = new MemoryStream(); 
    XmlTextWriter tw = new XmlTextWriter(ms, UTF8Encoding.UTF8); 
    XmlDocument doc = new XmlDocument(); 
    tw.Formatting = Formatting.Indented; 
    tw.IndentChar = ' '; 
    serializer.Serialize(tw, this, ns); 
    ms.Seek(0, SeekOrigin.Begin); 
    doc.Load(ms); 
    returnVal = document.ImportNode(doc.DocumentElement, true) as XmlElement; 
    return returnVal; 
} 
+1

這取決於。你爲什麼要把它轉換成XML?你打算如何使用XML?你發佈的樣本不必要的冗長,你可能不需要那裏的一半。 – svick

+0

以及我需要的xmelement becasue因爲我的服務重新創建一個xmlelemnt對象 –

+0

您使用的是什麼版本的.NET?在更高版本中,您可以使用LINQ to XML,這非常簡單。 –

回答

0

您可以將其設置爲對象類型的擴展方法,因此您不必將該方法放入一堆不同的類中。