Share via


Callback di serializzazione a tolleranza di versione

Il modello di programmazione del contratto dati supporta appieno i metodi di callback della serializzazione a tolleranza di versione supportati dalle classi BinaryFormatter e SoapFormatter.

Attributi a tolleranza di versione

Sono disponibili quattro attributi di callback. Ogni attributo può essere applicato a un metodo che il motore di serializzazione/deserializzazione chiama in vari momenti. Nella tabella seguente viene illustrato quando utilizzare ogni attributo.

Attributo Quando viene chiamato il metodo corrispondente

OnSerializingAttribute

Chiamato prima di serializzare il tipo.

OnSerializedAttribute

Chiamato dopo aver serializzato il tipo.

OnDeserializingAttribute

Chiamato prima di deserializzare il tipo.

OnDeserializedAttribute

Chiamato dopo aver deserializzato il tipo.

I metodi devono accettare un parametro StreamingContext.

Questi metodi sono destinati principalmente ad essere utilizzati per il controllo della versione o l'inizializzazione. Durante la deserializzazione, non viene chiamato alcun costruttore. È quindi possibile che i membri dati non vengano inizializzati correttamente (sugli appropriati valori predefiniti) se mancano i dati per questi membri nel flusso in ingresso, ad esempio, se i dati provengono da una versione precedente di un tipo in cui mancano alcuni membri dati. Per correggere questo problema, utilizzare il metodo di callback contrassegnato con OnDeserializingAttribute, come illustrato nell'esempio seguente.

È possibile contrassegnare solo uno metodo per tipo con ognuno dei precedenti attributi di callback.

Esempio

Vedere anche

Riferimenti

OnSerializingAttribute
OnSerializedAttribute
OnDeserializingAttribute
OnDeserializedAttribute
StreamingContext

Altre risorse

Version-Tolerant Serialization