Necesito evitar serializar un miembro de clase de evento porque cuando el evento es manejado por un objeto que no está marcado como Serializable, la serialización fallará.¿Cómo ignorar miembro de la clase de evento para la serialización binaria?
Intenté utilizar el atributo NonSerialized en el miembro de la clase Event pero no se puede compilar. Esta línea de código:
<NonSerialized()> Public Event PropertyValueChanged()
produce el siguiente error:
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
¿Hay otra manera de evitar la serialización de los miembros de eventos?
Esto no es un problema si el evento no se maneja y puedo evitarlo clonando los objetos (e ignorando el evento) antes de serializarlos. Me pregunto si hay una mejor manera.
Gracias.
@Paul - re "still fails"; ¿Qué es exactamente lo que quieres hacer? Me pregunto si cambiar el serializador sería una buena opción aquí (no es tan difícil como parece, y tiene beneficios secundarios también). Depende de usted, por supuesto, pero puedo hablar sobre esta área durante * horas * ... –
@Marc: gracias por darme seguimiento. Simplemente necesito ignorar los eventos al serializar una clase ya que la serialización falla cuando el evento está conectado a un objeto que no es serializable. El atributo NonSerialized tiene sentido, pero no parece funcionar de la misma manera en VB que en C# ... Recibo un error de compilación incluso cuando decorar un campo de respaldo a una propiedad de evento público. ¿A qué te refieres cuando dices "cambiar el serializador"? ¿Te refieres a serialización personalizada o alguna otra biblioteca de terceros? –