在Workflow 4.0中显式保持状态而不是一切

时间:2010-06-14 18:37:07

标签: c# .net-4.0 persistence workflow-foundation-4

我遇到了连接到正在运行的WorkflowApplication的SQL实例存储的问题。当我退出我的应用程序时,我在WF应用程序上调用Unload()来保留它。我没有在设计时考虑它,但它确实有意义,它持久化了一个在实例化时传递给WorkflowApplication构造函数的arg。

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

传入工作流程的是我编写的应用程序自定义记录器对象,以便WF可以以我喜欢的统一方式记录到磁盘。如何阻止工作流应用程序持久保存此参数并保留其他所有内容?

我确信可以使用扩展程序完成某些操作,但我很难找到有关它们的信息或查找我的方案的持久性示例。

1 个答案:

答案 0 :(得分:1)

您可以使用[NonSerialized]属性将变量装饰为不序列化。

这应该可以解决问题,它适用于WF3.5应用程序。参见http://msdn.microsoft.com/en-us/library/ms973893.aspx,标题为“选择性序列化”