FieldInfo.IsNotSerialized Propriété

Définition

Obtient une valeur indiquant si ce champ a l’attribut NotSerialized .

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

Valeur de propriété

true si le champ a l’attribut NotSerialized défini ; sinon, false.

Implémente

Exemples

L’exemple suivant obtient les informations de champ des champs de MyClass, détermine si les champs peuvent être sérialisés et affiche les résultats.

using System;
using System.Reflection;
using System.Runtime.Serialization;

public class MyClass
{
    public short myShort;

    // The following field will not be serialized.
    [NonSerialized()]
    public int myInt;
}
public class Type_IsNotSerializable
{
    public static void Main()
    {
        // Get the type of MyClass.
        Type myType = typeof(MyClass);

        // Get the fields of MyClass.
        FieldInfo[] myFields = myType.GetFields(BindingFlags.Public |
            BindingFlags.NonPublic |
            BindingFlags.Instance |
            BindingFlags.Static);
        Console.WriteLine("\nDisplaying whether or not the field is serializable.\n");

        // Display whether or not the field is serializable.
        for(int i = 0; i < myFields.Length; i++)
            if(myFields[i].IsNotSerialized)
                Console.WriteLine("The {0} field is not serializable.", myFields[i]);
            else
                Console.WriteLine("The {0} field is not serializable.", myFields[i]);
    }
}

Imports System.Reflection
Imports System.Runtime.Serialization

<Serializable()> _
Public Class [MyClass]
    Public myShort As Short

    ' The following field will not be serialized.  
    <NonSerialized()> Public myInt As Integer
End Class

Public Class Type_IsNotSerializable

    Public Shared Sub Main()
        ' Get the type of MyClass.
        Dim myType As Type = GetType([MyClass])

        ' Get the fields of MyClass.
        Dim myFields As FieldInfo() = myType.GetFields((BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.Static))
        Console.WriteLine(ControlChars.Cr & "Displaying whether or not the field is serializable." & ControlChars.Cr)
        Console.WriteLine()
        ' Displaying whether or not the field is serializable.
        Dim i As Integer
        For i = 0 To myFields.Length - 1
            If myFields(i).IsNotSerialized Then
                Console.WriteLine("The {0} field is not serializable.", myFields(i))
            Else
                Console.WriteLine("The {0} field is serializable.", myFields(i))
            End If
        Next i
    End Sub
End Class

Remarques

La IsNotSerialized propriété retourne true lorsque le champ est marqué avec l’indicateur FieldAttributes.NotSerialized . Lorsque cet indicateur est défini sur un champ, il indique que le champ n’a pas besoin d’être sérialisé lorsque le type est distant.

S’applique à

Voir aussi