代码之家  ›  专栏  ›  技术社区  ›  Jeff LaFay

在工作流4.0中显式地持久化状态,而不是所有状态

  •  0
  • Jeff LaFay  · 技术社区  · 14 年前

    我的SQL实例存储附加到 WorkflowApplication 正在运行。当我退出应用程序时,我正在调用 Unload() 在WF应用程序上进行持久化。我在设计期间没有考虑过它,但它确实很有意义,它是持久化一个arg,在实例化时传递给WorkflowApplication构造函数。

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

    工作流中传递的是我的应用程序自定义记录器对象,我编写了该对象,以便WF可以以我喜欢的统一方式登录到磁盘。如何防止工作流应用程序坚持这一参数并坚持其他所有参数?

    我确信扩展可以做些什么,但是我很难找到关于它们的信息或者为我的场景找到持久性示例。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Joon    14 年前

    可以使用[非序列化]属性将变量修饰为不序列化。

    这样就可以了,它在WF3.5应用程序中对我很有效。见 http://msdn.microsoft.com/en-us/library/ms973893.aspx ,标题“选择性序列化”