2010-07-07 69 views

回答

4

serilized的方式有上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(); 
    } 
} 

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

1

这里有一个良好的开端microsoft

还应考虑XML Schema和与xsd.exe自动生成类越早熟悉这一点越好,这可以为您节省使用XML的大量工作。也期待在生成的C#文件提供了关于如何使用属性来操纵类由XmlSerializer

6

它真的很简单,只有三个主要步骤。

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

反序列化:

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

对于XML序列化,[Serializable]属性不是必需的。二进制序列化需要[Serializable]属性。 – Xenan 2011-08-30 08:44:31

+0

@Xenan +1提到'[Serializable]对于XML序列化来说是多余的 – 2014-11-05 08:47:43

1

您可以轻松地找到有关的使用.net序列数据很多教程网页。然而,让我提醒几点:系列化的

  1. 类型:

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

    b。二进制序列化:请参考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

0

我们使用序列化以二进制格式和IN XML格式写入数据。用于二进制格式的 我们使用BibnaryFormatSerialization,而对于XML格式,我们使用SoapFormatSerialization。