我正在使用一个名为 Laserfiche 的软件。它有一个工作流服务器和一个 SDK,允许您使用自己的自定义活动。创建自定义活动时有一个要求。它必须是序列化的。所以我把属性 [Serializable] 放在所有的类上。问题是当我使用 System.Drawing.Printing.PrintDocument 类时。我得到:
2013 年 2 月 9 日 13:07:12 v9SignoffAuthentication 程序集“System.Drawing,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”中的类型“System.Drawing.Printing.PrintDocument”未标记为可序列化。
我谷歌了一下,发现 PrintDocument 不能被序列化。我添加属性
[NonSerialized]
PrintDocument pd;
并且自定义活动运行但不完全。我得到一个例外
pd.Print();
这是在覆盖方法中
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
错误是
System.NullReferenceException:对象引用未设置为对象的实例。在 WFPrintCustomActivity.WFPrintCustomActivity.Execute(ActivityExecutionContext executionContext)||02/09/2013 13:15:38
如果我将对象标记为 NonSerialized,以后不能调用其中一种方法吗?
有任何想法吗?
谢谢
詹弗兰科