İngilizce dilinde oku

Aracılığıyla paylaş


SerializableAttribute Sınıf

Tanım

Bir sınıfın ikili veya XML serileştirmesi kullanılarak seri hale getirilebileceğini gösterir. Bu sınıf devralınamaz.

C#
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Struct, Inherited=false)]
public sealed class SerializableAttribute : Attribute
C#
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Struct, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class SerializableAttribute : Attribute
Devralma
SerializableAttribute
Öznitelikler

Örnekler

Aşağıdaki örnekte özniteliğiyle işaretlenmiş bir nesnenin SOAP serileştirmesi SerializableAttribute gösterilmektedir.

C#
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Soap;

public class Test {
   public static void Main()  {

      // Creates a new TestSimpleObject object.
      TestSimpleObject obj = new TestSimpleObject();

      Console.WriteLine("Before serialization the object contains: ");
      obj.Print();

      // Opens a file and serializes the object into it in binary format.
      Stream stream = File.Open("data.xml", FileMode.Create);
      SoapFormatter formatter = new SoapFormatter();

      formatter.Serialize(stream, obj);
      stream.Close();

      // Empties obj.
      obj = null;

      // Opens file "data.xml" and deserializes the object from it.
      stream = File.Open("data.xml", FileMode.Open);
      formatter = new SoapFormatter();

      obj = (TestSimpleObject)formatter.Deserialize(stream);
      stream.Close();

      Console.WriteLine("");
      Console.WriteLine("After deserialization the object contains: ");
      obj.Print();
   }
}

// A test object that needs to be serialized.
[Serializable()]
public class TestSimpleObject  {

    public int member1;
    public string member2;
    public string member3;
    public double member4;

    // A field that is not serialized.
    [NonSerialized()] public string member5;

    public TestSimpleObject() {

        member1 = 11;
        member2 = "hello";
        member3 = "hello";
        member4 = 3.14159265;
        member5 = "hello world!";
    }

    public void Print() {

        Console.WriteLine("member1 = '{0}'", member1);
        Console.WriteLine("member2 = '{0}'", member2);
        Console.WriteLine("member3 = '{0}'", member3);
        Console.WriteLine("member4 = '{0}'", member4);
        Console.WriteLine("member5 = '{0}'", member5);
    }
}

Açıklamalar

Bu türün örneklerinin SerializableAttribute ikili veya XML serileştirme kullanılarak serileştirilebileceğini belirtmek için özniteliğini bir türe uygulayın. Ortak dil çalışma zamanı, seri hale getirilen nesnelerin grafında herhangi bir tür özniteliği uygulanmamışsa SerializableAttribute oluştururSerializationException.

SerializableAttribute sınıfı ikili serileştirme işlemini denetlemek için arabirimini ISerializable de uygulasa bile özniteliğini uygulayın.

Özniteliği bir türe uyguladığınızda SerializableAttribute , tüm özel ve ortak alanlar varsayılan olarak serileştirilir. Serileştirme işlemini geçersiz kılmak için arabirimini ISerializable uygulayarak ikili serileştirmeyi daha ayrıntılı bir şekilde denetleyebilirsiniz.

İsterseniz, özniteliğini alana uygulayarak alanları serileştirmenin NonSerializedAttribute dışında tutabilirsiniz. İkili seri hale getirilebilir türdeki bir alan belirli bir ortama özgü bir işaretçi, tanıtıcı veya başka bir veri yapısı içeriyorsa ve farklı bir ortamda anlamlı bir şekilde yeniden oluşturulamıyorsa, özniteliği bu alana uygulamak NonSerializedAttribute isteyebilirsiniz.

Öznitelikleri kullanma hakkında daha fazla bilgi için bkz . Öznitelikler. İkili serileştirme hakkında daha fazla bilgi için bkz System.Runtime.Serialization. .

Not

Bu öznitelik kullanarak System.Text.JsonJSON serileştirmesi için geçerli değildir.

Oluşturucular

SerializableAttribute()

SerializableAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Ayrıca bkz.