[C#]XML的序列化(Serializer)和反序列化的簡單工具
前言
雖然現在是json當道,但還是有很多即有的專案,可能一直延用著xml的格式,來交換資料,這邊我便找了一下有哪幾種,最後我決定了使用XSerializer,感覺夠簡單而且還有持續在維護的感覺,接下來筆記一下這個簡單的工具。
開始動手
首先我們可以直接使用nuget來下載,如下圖
下載完之後,我們很簡單就可以把類別轉成xml的格式字串了
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
void Main()
{
var employees = new List<Employee>
{
new Employee
{
Id=1,
Name="1"
},
new Employee
{
Id=2,
Name="2"
},
new Employee
{
Id=3,
Name="3"
}
};
XmlSerializer<List<Employee>> serializer = new XmlSerializer<List<Employee>>();
string xml = serializer.Serialize(employees);
xml.Dump();
serializer.Deserialize(xml).Dump();
}
我們可以先看一下Serializer成xml的內容部份
<?xml version="1.0" encoding="UTF-8"?>
<ListOfEmployee xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Employee>
<Id>1</Id>
<Name>1</Name>
</Employee>
<Employee>
<Id>2</Id>
<Name>2</Name>
</Employee>
<Employee>
<Id>3</Id>
<Name>3</Name>
</Employee>
</ListOfEmployee>
最後就是正確的再反序列化C#物件供我們使用了,而此工具其實也可以幫助serializer json,使用方式也是大同小異,如下程式碼
JsonSerializer<List<Employee>> serializer = new JsonSerializer<List<Employee>>();
string xml = serializer.Serialize(employees);
xml.Dump();
serializer.Deserialize(xml).Dump();
結論
此工具對我來說就是簡單,並且作者也很有心的持續維護,如果有更好的建議再請告知囉。