1
如果我在C#中創建一個類,如何將它序列化/反序列化爲文件?這是否可以使用內置功能完成,還是自定義代碼?使用序列化映射類和xml文件
如果我在C#中創建一個類,如何將它序列化/反序列化爲文件?這是否可以使用內置功能完成,還是自定義代碼?使用序列化映射類和xml文件
XmlSerializer
;注意,準確的XML名稱可以通過various attributes得到控制,但是你真正需要的是:
例子:
using System;
using System.Xml;
using System.Xml.Serialization;
public class Person {
public string Name { get; set; }
}
static class Program {
static void Main() {
Person person = new Person { Name = "Fred"};
XmlSerializer ser = new XmlSerializer(typeof(Person));
// write
using (XmlWriter xw = XmlWriter.Create("file.xml")) {
ser.Serialize(xw, person);
}
// read
using (XmlReader xr = XmlReader.Create("file.xml")) {
Person clone = (Person) ser.Deserialize(xr);
Console.WriteLine(clone.Name);
}
}
}
您需要使用類XmlSerializer的。主要方法是序列化和反序列化。他們接受流,文本讀者\作家和其他類。
代碼示例:
public class Program
{
public class MyClass
{
public string Name { get; set; }
}
static void Main(string[] args)
{
var myObj = new MyClass { Name = "My name" };
var fileName = "data.xml";
var serializer = new XmlSerializer(typeof(MyClass));
using (var output = new XmlTextWriter(fileName, Encoding.UTF8))
serializer.Serialize(output, myObj);
using (var input = new StreamReader(fileName))
{
var deserialized = (MyClass)serializer.Deserialize(input);
Console.WriteLine(deserialized.Name);
}
Console.WriteLine("Press ENTER to finish");
Console.ReadLine();
}
}