Se si tenta di serializzare una classe che contiene un evento, si ottiene un errore in fase di esecuzione: come è logico intuire, infatti, gli eventi non possono essere serializzati. Per risolvere il problema è sufficiente aggiungere l'attributo [field:NonSerialized] davanti alla dichiarazione dell'evento:
[field:NonSerialized]
public event EventHandler StatusChanged;
Questo significa che, dopo aver deserializzato la classe, è necessario registrarsi nuovamente sugli eventi da essa definiti.
Purtroppo l'attributo [field:NonSerialized] non è supportato da VB .NET: in questo caso, per serializzare oggetti che contengono eventi è necessaria una procedura più lunga, descritta in questo post.