Passaggi del processo di serializzazioneSteps in the serialization process

Quando viene chiamato il metodo Serialize su un formattatore, la serializzazione dell'oggetto continua secondo la sequenza di regole riportata di seguito:When the Serialize method is called on a formatter, object serialization proceeds according to the following sequence of rules:

  • Viene effettuato un controllo per determinare se il formattatore dispone di un selettore di surrogati.A check is made to determine whether the formatter has a surrogate selector. In caso affermativo, controllare se il selettore di surrogati gestisce oggetti del tipo specificato.If the formatter does, check whether the surrogate selector handles objects of the given type. Se il selettore gestisce il tipo di oggetto, viene chiamato ISerializable.GetObjectData sul selettore di surrogati.If the selector handles the object type, ISerializable.GetObjectData is called on the surrogate selector.

  • Se non è presente alcun selettore di surrogati o il tipo di oggetto non viene gestito, viene effettuato un controllo per determinare se l'oggetto è contrassegnato con l'attributo Serializable.If there is no surrogate selector or if it does not handle the object type, a check is made to determine whether the object is marked with the Serializable attribute. Se l'oggetto non è contrassegnato, viene generata una SerializationException.If the object is not, a SerializationException is thrown.

  • Se l'oggetto è contrassegnato in modo appropriato, controllare se l'oggetto implementa l'interfaccia ISerializable.If the object is marked appropriately, check whether the object implements the ISerializable interface. In caso affermativo, GetObjectData viene chiamato sull'oggetto.If the object does, GetObjectData is called on the object.

  • Se l'oggetto non implementa ISerializable, vengono usati i criteri di serializzazione predefiniti, che serializzano tutti i campi non contrassegnati come NonSerialized.If the object does not implement ISerializable, the default serialization policy is used, serializing all fields not marked as NonSerialized.

Avviso

La serializzazione binaria può rappresentare un pericolo.Binary serialization can be dangerous. Non deserializzare mai dati da un'origine non attendibile e non eseguire il round trip per i dati serializzati verso sistemi non sotto il proprio controllo.Never deserialize data from an untrusted source and never round-trip serialized data to systems not under your control.

Vedere ancheSee also