C#中的XML序列化

jit*_*itm 9 c# xml serialization xml-serialization

我在哪里可以找到关于对象的XMl序列化的好教程?谢谢.

Nat*_*ate 7

它非常简单,只有三个主要步骤.

  1. 您需要使用该[Serializable]属性标记您的类.
  2. 写序列化代码
  3. 编写反序列化代码

连载:

var x = new XmlSerializer(typeof(YourClass));
var fs = new FileStream(@"C:\YourFile.xml"), FileMode.OpenOrCreate);
x.Serialize(fs, yourInstance);
fs.Close();
Run Code Online (Sandbox Code Playgroud)

反序列化:

var x = new XmlSerializer(typeof(YourClass));
var fs = new FileStream(@"C:\YourFile.xml"), FileMode.Open);
var fromFile = x.Deserialize(fs) as YourClass;
fs.Close();
Run Code Online (Sandbox Code Playgroud)

  • 对于XML序列化,不需要[Serializable]属性.二进制序列化需要[Serializable]属性. (2认同)

Chr*_*isF 5

有一个关于微软支持页面的基本教程,他们的代码示例只有几行:

using System;

public class clsPerson
{
  public  string FirstName;
  public  string MI;
  public  string LastName;
}

class class1
{ 
   static void Main(string[] args)
   {
      clsPerson p=new clsPerson();
      p.FirstName = "Jeff";
      p.MI = "A";
      p.LastName = "Price";
      System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
      x.Serialize(Console.Out, p);
      Console.WriteLine();
      Console.ReadLine();
   }
}
Run Code Online (Sandbox Code Playgroud)

基本上除了调用为您完成所有艰苦工作的内置函数之外,您不需要任何其他操作.