È necessario evitare di serializzare un membro della classe Event perché quando l'evento viene gestito da un oggetto che non è contrassegnato come serializzabile, la serializzazione avrà esito negativo.Come ignorare il membro della classe Event per la serializzazione binaria?
Ho provato a utilizzare l'attributo NonSerialized sul membro della classe Event ma non riesce a compilare. Questa riga di codice:
<NonSerialized()> Public Event PropertyValueChanged()
produce il seguente errore:
Attribute 'NonSerializedAttribute' cannot be applied to 'PropertyValueChanged' because the attribute is not valid on this declaration type.
Public Event PropertyValueChanged() ' compiles but needs the extra handling described below
C'è un altro modo per evitare la serializzazione membri evento?
Questo non è un problema se l'evento non viene gestito e posso aggirarlo clonando gli oggetti (ignorando l'evento) prima di serializzarli. Mi chiedo solo se c'è un modo migliore.
Grazie.
@Paul - re "fallisce ancora"; cosa vuoi fare esattamente? Mi chiedo se cambiando serializzatore sarebbe una buona opzione qui (non è così difficile come sembra, e ha anche vantaggi collaterali). Naturalmente, ma posso parlare di quest'area per * ore * ... –
@Marc: Grazie per il seguito. Devo semplicemente ignorare gli eventi durante la serializzazione di una classe poiché la serializzazione non riesce quando l'evento è collegato a un oggetto che non è serializzabile. L'attributo NonSerialized ha senso, ma non sembra funzionare allo stesso modo in VB come in C# ... Ottengo un errore del compilatore anche quando decoro un campo di supporto per una proprietà di un evento pubblico. Cosa intendi quando dici "cambiare il serializzatore"? Vuoi dire serializzazione personalizzata o qualche altra libreria di terze parti? –