【问题标题】:How can i serialize EventArgs in c# with binaryFormatter如何使用 binaryFormatter 在 c# 中序列化 EventArgs
【发布时间】:2013-07-01 20:28:36
【问题描述】:

我有一个表单,我需要保存对控件的表单所做的操作。为此,我有这样的事情:

 

[NonSerialized()] public EventInfo evento;
public TimeSpan timeToWait;
[NonSerialized()] public Control sender;
public EventArgs eventArgs;
public Type typeOfControl;
public Type typeOfEventArgs;

我需要序列化,但不能序列化EventArgs,因为事件可以是键盘鼠标,这是表单上可以发生的所有事件。

这样做的目的,并制作一个记录器,记录在表单上执行的所有操作。

【问题讨论】:

  • 如果您收到一条错误消息,它会说什么?你试过什么?
  • 我有一些 eventArgs,但它们可以是任何东西。可以是 MouseEvents、KeyEvents 等。我实际上想过创建一个禁止重要字段的类。为 MouseEvents 创建,但由于我不知道 EventArgs 的类型,所以永远无法创建一个足够存储的类。

标签: c# serialization binaryformatter eventargs


【解决方案1】:

不要序列化EventArgs类,而是创建一个只包含你需要以二进制方式保存和恢复的字段的类。

public EventArgsData {
   public Point MouseCoorrd;
   public MouseButton Button;
   ....

}

【讨论】:

  • 我有一些 eventArgs,但它们可以是任何东西。可以是 MouseEvents、KeyEvents 等。我实际上想过创建一个禁止重要字段的类。为 MouseEvents 创建,但由于我不知道 EventArgs 的类型,永远无法创建一个足够存储的类。
  • 我认为您可以为要保存的每个类(不应该超过 5 个?)创建自己的可序列化模拟。
猜你喜欢
  • 1970-01-01
  • 2010-12-10
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
  • 1970-01-01
  • 2013-09-23
相关资源
最近更新 更多