2012-01-18 4 views
2

マイクロソフトでは、記事の中に「How to serialize an object to XML by using Visual C#」というコードを提供しています。クラスに[DataContract]属性または[Serializable]属性のいずれかを付けてシリアル化する必要があるのはなぜですか?

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"; 
     XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType()); 
     x.Serialize(Console.Out, p); 
     Console.WriteLine(); 
     Console.ReadLine(); 
    } 
}  

は、しかし、なぜクラスは、clsPersonは、いずれかの[のDataContract]または[Serializableを]属性でマークする必要はないのですか?

+0

の可能な複製[XmlSerializerで型が\ [Serializable \]とマークされる必要があるのはなぜですか?](http://stackoverflow.com/questions/392431/why-doesnt- the-xmlserializer-need-the-be-marked-marked-serializable) – nawfal

答えて

4

、XMLシリアル化は、公共分野とgetとsetアクセサを持つパブリックプロパティをシリアル化する:

は、関連の質問を参照してください。シリアライズ型には、パラメータを持たないコンストラクタも必要です。これは唯一の契約\ o/

関連する問題