Je dois éviter de sérialiser un membre de classe Evénement car lorsque l'événement est géré par un objet qui n'est pas marqué comme sérialisable, la sérialisation échoue.Comment ignorer le membre de classe d'événement pour la sérialisation binaire?
J'ai essayé d'utiliser l'attribut NonSerialized sur le membre de la classe Event mais il échoue à la compilation. Cette ligne de code:
<NonSerialized()> Public Event PropertyValueChanged()
produit l'erreur suivante:
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
Y at-il une autre façon d'éviter sérialisation membres de l'événement?
Ce n'est pas un problème si l'événement n'est pas géré et je peux le contourner en clonant les objets (et en ignorant l'événement) avant de les sérialiser. Je me demandais simplement s'il y avait un meilleur moyen.
Merci.
@Paul - re "échoue toujours"; qu'est-ce que tu veux faire exactement? Je me demande si changer de sérialiseur serait une bonne option ici (ce n'est pas aussi dur que ça en a l'air, et a aussi des avantages secondaires). A vous de bien sûr, mais je peux parler de cette zone pendant * heures * ... –
@Marc: Merci pour le suivi. J'ai simplement besoin d'ignorer les événements lors de la sérialisation d'une classe, car la sérialisation échoue lorsque l'événement est connecté à un objet qui n'est pas sérialisable. L'attribut NonSerialized a du sens, mais ne semble pas fonctionner de la même manière en VB qu'en C# ... J'obtiens une erreur de compilation même lorsque je décore un champ de support à une propriété d'événement publique. Que voulez-vous dire quand vous dites "changer le sérialiseur"? Voulez-vous dire la sérialisation personnalisée ou une autre bibliothèque tierce? –