我有一個非常簡單的應用程序。 MainUI具有CustomClass的列表。我將這個列表傳遞給WCF服務。 WCF服務還需要將這些對象保存在數據庫中。轉換列表<Object>轉換爲XML
我在我們的sql存儲過程中使用Open XML來獲得更好的性能。但我不知道如何將對象列表轉換爲XML。
如果我有一個數據表,它會很容易,因爲數據表有方法從中獲取XML。但是如何使用List對象。
我完全理解,如果我的List來自WCF,它會正確地序列化。但是我應該怎麼做。
我有一個非常簡單的應用程序。 MainUI具有CustomClass的列表。我將這個列表傳遞給WCF服務。 WCF服務還需要將這些對象保存在數據庫中。轉換列表<Object>轉換爲XML
我在我們的sql存儲過程中使用Open XML來獲得更好的性能。但我不知道如何將對象列表轉換爲XML。
如果我有一個數據表,它會很容易,因爲數據表有方法從中獲取XML。但是如何使用List對象。
我完全理解,如果我的List來自WCF,它會正確地序列化。但是我應該怎麼做。
IMO,請查看Controlling XML Serialization with Attributes和XmlSerializer類,並可能創建與您的CustomClass平行的容器類。雖然List<>
不能被默認的XML串行器自動序列化,但數組可以。
Thera有兩種方法:使用XmlSerializer或DataContractSerializer。
代碼轉換列表爲xml:列表名稱GridDetails
void ConvertToXml()
{
string xmlString = ConvertObjectToXMLString(GridDetails);
// Save C# class object into Xml file
XElement xElement = XElement.Parse(xmlString);
xElement.Save(@"C:\Users\user\Downloads\userDetail.xml");
}
static string ConvertObjectToXMLString(object classObject)
{
string xmlString = null;
XmlSerializer xmlSerializer = new XmlSerializer(classObject.GetType());
using (MemoryStream memoryStream = new MemoryStream())
{
xmlSerializer.Serialize(memoryStream, classObject);
memoryStream.Position = 0;
xmlString = new StreamReader(memoryStream).ReadToEnd();
}
return xmlString;
}