2010-06-14 69 views
0

我遇到了一个问题,我的SQL实例存储附加到正在运行的WorkflowApplication。当我退出我的应用程序时,我在WF应用程序上调用Unload()来坚持它。我在设计时没有考虑它,但它确实有意义,它坚持一个在实例化时传递给WorkflowApplication构造函数的参数。明确坚持工作流4.0中的状态而不是全部

当应用程序运行时,工作流中的所有内容都按预期工作。当我呼叫Unload()时,我得到一个未处理的异常,该异常声明arg不可序列化并且需要[DataContractAttribute]

传入工作流的是我编写的应用程序自定义记录器对象,以便WF可以以我喜欢的统一方式登录到磁盘。如何阻止工作流应用程序坚持这一个参数并坚持一切?

我确定可以使用扩展完成某些操作,但我很难在其上查找信息或查找我的方案的持久性示例。

回答

1

您可以用[NonSerialized]属性来装饰变量以不被序列化。

这应该可以做到,它适用于我的WF3.5应用程序。请参阅http://msdn.microsoft.com/en-us/library/ms973893.aspx,标题“选择性序列化”

+0

好吧,我错误地应用了属性。在我的Logger类中,我使用[Serializable]对其进行了修饰(即使我不喜欢该实现,因为它不应该被序列化),然后使用[NonSerialized]标记实例化的Logger对象。现在持续忽略记录器对象。谢谢Joon! – jlafay 2010-06-14 20:57:03