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 |
---|---|
Chiamato prima di serializzare il tipo. |
|
Chiamato dopo aver serializzato il tipo. |
|
Chiamato prima di deserializzare il tipo. |
|
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