代码之家  ›  专栏  ›  技术社区  ›  Paul Sasik

如何忽略二进制序列化的事件类成员?

  •  16
  • Paul Sasik  · 技术社区  · 14 年前

    <NonSerialized()> Public Event PropertyValueChanged()
    

    属性“NonSerializedAttribute” 不能应用于 声明类型。

    Public Event PropertyValueChanged() ' compiles but needs the extra handling described below
    

    有没有其他方法可以避免序列化事件成员?

    谢谢。

    3 回复  |  直到 13 年前
        1
  •  35
  •   Marc Gravell    14 年前

    在C#中,您可以按以下方式执行此操作,因此我 希望 这与VB的翻译相同。

    注意:这只适用于类似于字段的事件(即您没有自己的事件) add remove ):

    [field: NonSerialized]
    public event EventType EventName;
    

    否则类似于:

    [NonSerialized]
    EventType backingField;
    public event EventType {
        add { backingField += value; }
        remove { backingField -= value; }
    }
    
        2
  •  6
  •   Abe Heidebrecht    14 年前

    [field: NonSerialized]
    public event EventHandler PropertyValueChanged;
    
        3
  •  0
  •   NebuSoft    14 年前

    在过去的项目中,我是如何实现IXmlSerializable接口并手动控制序列化的。我发现这使得序列化基于GUI的控件(有很多事件)变得更加容易。

    IXmlSerializable