C#暂时取消分配事件处理程序以进行序列化?
我有一个对象图,其中包含一个触发事件的对象 我想序列化这个图,但是我偶尔会将处理程序插入到属于不可序列化类的事件中,我也不想首先序列化那些不可序列化的对象 基本上,不可序列化的东西,如日历、报告、图表等。插入数据图,事件用于更新等。我想序列化我的数据图,但不是我的报告、日历等 当我尝试序列化我的数据图时,如果事件委托不是null,我会得到一个异常,因为处理类是不可序列化的。我有这些表单中的代码,当我关闭它们时,处理程序断开连接,因此只要我关闭了所有日历、报表等,我就可以保存数据图 合乎逻辑的解决方案似乎是:C#暂时取消分配事件处理程序以进行序列化?,c#,events,event-handling,C#,Events,Event Handling,我有一个对象图,其中包含一个触发事件的对象 我想序列化这个图,但是我偶尔会将处理程序插入到属于不可序列化类的事件中,我也不想首先序列化那些不可序列化的对象 基本上,不可序列化的东西,如日历、报告、图表等。插入数据图,事件用于更新等。我想序列化我的数据图,但不是我的报告、日历等 当我尝试序列化我的数据图时,如果事件委托不是null,我会得到一个异常,因为处理类是不可序列化的。我有这些表单中的代码,当我关闭它们时,处理程序断开连接,因此只要我关闭了所有日历、报表等,我就可以保存数据图 合乎逻辑的解决
如何在序列化过程中临时删除所有处理程序,然后将它们设置回原位?您可以尝试将
[field:NonSerialized]
应用到您的事件中?您更快了。我可以添加一个示例的链接:)