2010-07-07 104 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。