1

重複の可能性:
C#で[Serializable]を使用する必要があるのはいつですか?

シリアル化を扱う場合、クラスの最初(名前空間の後、クラスの前)で[Serializable()]を使用することはどのように重要ですか?

私は次のようにサンプルを見ています:

namespace MyObjSerial
{
    [Serializable()]    //Set this attribute to all the classes that you define to be serialized
    public class Employee : ISerializable
    {
        public int EmpId;
        public string EmpName;

        //Default constructor
        public Employee()
        {
            EmpId = 0;
            EmpName = null;
        }
    }
}
4

1 に答える 1

1

バイナリ シリアライゼーション[高度に自動化された]

タイプBinary Serializableを作成する 2 つの方法

{XML でシリアル化したい場合、これは望ましくありません}

実装ISerializableすると、シリアル化を完全に制御できます

また

serialzableなどの属性や、nonSerializedその他のさまざまな属性を使用します。attributeを使用すると、シリアライザーは、パブリックプロパティserialzableを含むすべてのフィールドを型に含めるように指示されます`private,but not


XMLシリアライゼーション[あまり自動化されていない]

XMLその場合、クラスをシリアライズしたいと思います

型をXML シリアライズ可能にする 2 つの方法

System.Xml.Serialization属性を使用する

また

IXmlSerializerより詳細な制御のために実装する


あなたの質問

シリアライゼーションを扱うとき、クラスの最初 (名前空間の後、クラスの前) で [Serializable()] を使用することが重要ですか?

Ofcorse ..これは、これらの特定の型をシリアル化するようにコンパイラに指示する方法です。ただし、クラスがシリアル化する対象に応じて、属性またはインターフェイスを使用する必要があります。

したがって、[Serializable()]型をシリアル化するための属性を使用すると機能しXMLません。バイナリSystem.Xml.Serialization attributesシリアル化に使用されます。クラスに属性を振りかけるかIXmlSerializerXMLシリアル化に使用する必要があります

使用できます

1>Data Contract Serializer
2>Binary Serializer
3>Xml Serializer
于 2012-10-30T17:54:18.770 に答える