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 ObjectManager.RegisterObject (Object, Int64, SerializationInfo, Int64, MemberInfo, Int32[])

 

Data di pubblicazione: ottobre 2016

Registra un membro di una matrice contenuta in un oggetto durante la deserializzazione, associandolo objectID, e la registrazione di SerializationInfo.

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

[SecurityCriticalAttribute]
public void RegisterObject(
	object obj,
	long objectID,
	SerializationInfo info,
	long idOfContainingObj,
	MemberInfo member,
	int[] arrayIndex
)

Parametri

obj
Type: System.Object

Oggetto da registrare.

objectID
Type: System.Int64

ID dell'oggetto da registrare.

info
Type: System.Runtime.Serialization.SerializationInfo

Il SerializationInfo utilizzato se obj implementa ISerializable o ha un ISerializationSurrogate. info verrà completata con informazioni eventuali correzioni necessarie e quindi passato all'oggetto richiesto quando tale oggetto è stato completato.

idOfContainingObj
Type: System.Int64

L'ID dell'oggetto che contiene obj. Questo parametro è obbligatorio solo se obj è un tipo di valore.

member
Type: System.Reflection.MemberInfo

Il campo nell'oggetto contenitore in cui obj esiste. Questo parametro ha significato solo se obj è un tipo di valore.

arrayIndex
Type: System.Int32[]

Se obj è un ValueType e un membro di una matrice arrayIndex contiene l'indice all'interno della matrice in cui obj esiste. arrayIndex viene ignorato se obj non sia un ValueType e un membro di una matrice.

Exception Condition
ArgumentNullException

Il valore del parametro obj è null.

ArgumentOutOfRangeException

Il objectID parametro è minore o uguale a zero.

SerializationException

Il objectID è già stato registrato per un oggetto diverso da obj, o member non è un FieldInfo e member non null.

È necessario fornire il member e idOfContainingObj parametri se obj è un ValueType a causa della modalità di esecuzione delle correzioni in ValueType oggetti. Lo spazio per archiviare le informazioni per un ValueType viene allocato in linea con l'oggetto che lo contiene. Tuttavia, quando il ValueType è di tipo boxed per la registrazione con il ObjectManager, perde la connessione con l'oggetto che. Per garantire che correzioni nell'istanza del ValueType archiviato nell'oggetto che contiene e non nell'istanza, il ObjectManager le informazioni aggiuntive.

ObjectManager mantiene informazioni sull'oggetto e il relativo ID. In seguito durante la deserializzazione, GetObject può essere utilizzato per individuare se un ID di oggetto specifico è già stato deserializzato, o ancora se non è un riferimento diretto a un oggetto deserializzato.

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