我遇到了连接到正在运行的WorkflowApplication
的SQL实例存储的问题。当我退出我的应用程序时,我在WF应用程序上调用Unload()
来保留它。我没有在设计时考虑它,但它确实有意义,它持久化了一个在实例化时传递给WorkflowApplication构造函数的arg。
当应用程序运行时,工作流程中的所有内容都按预期工作。当我调用Unload()
时,我收到一个未处理的异常,指出arg不可序列化且需要[DataContractAttribute]
。
传入工作流程的是我编写的应用程序自定义记录器对象,以便WF可以以我喜欢的统一方式记录到磁盘。如何阻止工作流应用程序持久保存此参数并保留其他所有内容?
我确信可以使用扩展程序完成某些操作,但我很难找到有关它们的信息或查找我的方案的持久性示例。
答案 0 :(得分:1)
您可以使用[NonSerialized]属性将变量装饰为不序列化。
这应该可以解决问题,它适用于WF3.5应用程序。参见http://msdn.microsoft.com/en-us/library/ms973893.aspx,标题为“选择性序列化”