Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo FormatterServices.GetSerializableMembers (Type)

 

Data di pubblicazione: ottobre 2016

Ottiene tutti i membri serializzabili per una classe dell'oggetto specificato Type.

Spazio dei nomi:   System.Runtime.Serialization
Assembly:  mscorlib (in mscorlib.dll)

[SecurityCriticalAttribute]
public static MemberInfo[] GetSerializableMembers(
	Type type
)

Parametri

type
Type: System.Type

Il tipo serializzato.

Valore restituito

Type: System.Reflection.MemberInfo[]

Matrice di tipo MemberInfo dei membri non temporanei e non statici.

Exception Condition
ArgumentNullException

Il valore del parametro type è null.

SecurityException

Il chiamante non dispone dell'autorizzazione richiesta.

In genere, i membri di una classe serializzabili sono i membri non temporanei e non statici, ad esempio i campi e proprietà. Per essere inclusi, proprietà devono avere sia un metodo Get e set. Una classe che implementa il ISerializable o presenta una serializzazione surrogato non è necessario serializzare tutti questi membri oppure può serializzare membri aggiuntivi.

Esempio di codice seguente viene illustrata l'implementazione di GetSerializableMembers metodo. Questo esempio di codice fa parte di un esempio più esaustivo fornito per la FormatterServices classe.

[SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]
public void GetObjectData(SerializationInfo info, StreamingContext context)
{

    // Serialize the desired values for this class.
    info.AddValue("title", title);

    // Get the set of serializable members for the class and base classes.
    Type thisType = this.GetType();
    MemberInfo[] mi = FormatterServices.GetSerializableMembers(thisType, context);

    // Serialize the base class's fields to the info object.
    for (Int32 i = 0; i < mi.Length; i++)
    {
        // Do not serialize fields for this class.
        if (mi[i].DeclaringType == thisType) continue;

        // Skip this field if it is marked NonSerialized.
        if (Attribute.IsDefined(mi[i], typeof(NonSerializedAttribute))) continue;

        // Get the value of this field and add it to the SerializationInfo object.
        info.AddValue(mi[i].Name, ((FieldInfo) mi[i]).GetValue(this));
    }

    // Call the method below to see the contents of the SerializationInfo object.
    DisplaySerializationInfo(info);
}

SecurityPermission

For providing serialization services. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter, F:System.Security.Permissions.SecurityAction.LinkDemand.

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: