C#中的XML序列化

时间:2010-07-07 14:41:26

标签: c# xml serialization xml-serialization

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

7 个答案:

答案 0 :(得分:6)

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

  1. 您需要使用[Serializable]属性标记您的课程。
  2. 编写序列化代码
  3. 编写反序列化代码
  4. 序列化:

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

    反序列化:

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

答案 1 :(得分:5)

Microsoft's support pages上有一个基本教程,他们的代码示例只有几行:

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();
   }
}

基本上除了调用为你完成所有艰苦工作的内置函数之外,你没有其他任何东西。

答案 2 :(得分:2)

答案 3 :(得分:1)

答案 4 :(得分:1)

这是一个好的开始microsoft

同时查看Xml Schema并使用xsd.exe自动生成类越早越好,它可以为您节省大量使用XML的工作量。另外,查看生成的c#文件,可以为您提供一些线索,帮助您了解如何使用属性来操纵类XmlSerializer

加强类的方式

答案 5 :(得分:1)

您可以在Web上使用.Net轻松找到有关序列化数据的许多教程。但是,让我提醒一些观点:

  1. 序列化的类型:

    一个。 XML序列化:请查看http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization

    湾二进制序列化:请参阅http://www.switchonthecode.com/tutorials/csharp-tutorial-serialize-objects-to-a-file

  2. 当您使用文件工作(读取和写入数据)时,请注意安全方面。这里有一个很好的教程http://msdn.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx

答案 6 :(得分:0)

我们使用Serialization以二进制格式和IN XML格式写入数据。 对于二进制格式,我们使用BibnaryFormatSerialization,对于XML格式,我们使用SoapFormatSerialization。