Type.IsSerializable プロパティ

定義

Type をシリアル化できるかどうかを示す値を取得します。Gets a value indicating whether the Type is serializable.

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

プロパティ値

true をシリアル化できる場合は Type。それ以外の場合は falsetrue if the Type is serializable; otherwise, false.

実装

次の例では、クラスMyTestClassのインスタンスを作成し、[Serializable] 属性を設定し、 trueまたfalseはのIsSerializableプロパティをチェックします。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);
            }
        }
    }
}
Namespace SystemType
    Public Class [MyClass]
        ' Declare a public class with the [Serializable] attribute.
        <Serializable()> Public Class MyTestClass
        End Class
        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
    End Class
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(Of Integer) (Visual Basic MyGenericType<int> ) を表している場合、このプロパティの値はに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.

適用対象

こちらもご覧ください