Type.IsSerializable Type.IsSerializable Type.IsSerializable Type.IsSerializable Property

Определение

Возвращает значение, позволяющее определить, сериализуем ли объект Type.Gets a value indicating whether the Type is serializable.

public:
 virtual property bool IsSerializable { bool get(); };
public virtual bool IsSerializable { get; }
member this.IsSerializable : bool
Public Overridable ReadOnly Property IsSerializable As Boolean

Значение свойства

Значение true, если объект Type является сериализуемым; в противным случае — значение false.true if the Type is serializable; otherwise, false.

Реализации

Примеры

В следующем примере создается экземпляр MyTestClass классе, задает атрибут [Serializable] и проверяет IsSerializable свойство для true или false.The following example creates an instance of MyTestClass class, sets the [Serializable] attribute, and checks the IsSerializable property for true or false.

using namespace System;
public ref class MyClass
{
public:

   // Declare a public class with the [Serializable] attribute.

   [Serializable]
   ref class MyTestClass{};


};

int main()
{
   try
   {
      bool myBool = false;
      MyClass::MyTestClass^ myTestClassInstance = gcnew MyClass::MyTestClass;
      
      // Get the type of myTestClassInstance.
      Type^ myType = myTestClassInstance->GetType();
      
      // Get the IsSerializable property of myTestClassInstance.
      myBool = myType->IsSerializable;
      Console::WriteLine( "\nIs {0} serializable? {1}.", myType->FullName, myBool );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "\nAn exception occurred: {0}", e->Message );
   }

}

using System;
namespace SystemType
{
    public class MyClass
    {
        // Declare a public class with the [Serializable] attribute.
        [Serializable] public class MyTestClass 
        {
        }
        public static void Main(string []args)
        {
            try
            {
                bool myBool = false;
                MyTestClass myTestClassInstance = new MyTestClass();
                // Get the type of myTestClassInstance.
                Type myType = myTestClassInstance.GetType();
                // Get the IsSerializable property of myTestClassInstance.
                myBool = myType.IsSerializable;
                Console.WriteLine("\nIs {0} serializable? {1}.", myType.FullName, myBool.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine("\nAn exception occurred: {0}", e.Message);
            }
        }
    }
}
Imports System
Imports Microsoft.VisualBasic
Namespace SystemType
    Public Class [MyClass]
        ' Declare a public class with the [Serializable] attribute.
        <Serializable()> Public Class MyTestClass
        End Class 'MyTestClass
        Public Overloads Shared Sub Main()
            Try
                Dim myBool As Boolean = False
                Dim myTestClassInstance As New MyTestClass()
                ' Get the type of myTestClassInstance.
                Dim myType As Type = myTestClassInstance.GetType()
                ' Get the IsSerializable property of myTestClassInstance.
                myBool = myType.IsSerializable
                Console.WriteLine(ControlChars.Cr + "Is {0} serializable? {1}.", myType.FullName, myBool.ToString())
            Catch e As Exception
                Console.WriteLine(ControlChars.Cr + "An exception occurred: {0}", e.Message.ToString())
            End Try
        End Sub 'Main
    End Class '[MyClass]
End Namespace 'SystemType

Комментарии

Типы, которые определены в .NET Standard не отмечены SerializableAttribute.Types that are defined in the .NET Standard are not marked with SerializableAttribute. Вместо этого каждая реализация .NET определяет, является ли тип сериализуемым.Instead, each .NET implementation determines whether a type is serializable. Во время выполнения, можно использовать IsSerializable свойства, чтобы определить, поддерживает ли эта реализация сериализации экземпляра типа.At run time, you can use the IsSerializable property to determine whether that implementation supports serialization of an instance of the type. Дополнительные сведения и пример см. в разделе как определить, если объект .NET Standard является сериализуемым.For more information and an example, see How to determine if a .NET Standard object is serializable.

Если текущий Type представляет сконструированный универсальный тип, это свойство применяется к определению универсального типа, из которого был создан тип.If the current Type represents a constructed generic type, this property applies to the generic type definition from which the type was constructed. Например если текущий Type представляет MyGenericType<int> (MyGenericType(Of Integer) в Visual Basic), значение этого свойства определяется MyGenericType<T>.For example, if the current Type represents MyGenericType<int> (MyGenericType(Of Integer) in Visual Basic), the value of this property is determined by MyGenericType<T>.

Если текущий Type представляет параметр типа в определении универсального типа или метода, это свойство всегда возвращает false.If the current Type represents a type parameter in the definition of a generic type or generic method, this property always returns false.

Применяется к

Дополнительно