【问题标题】:Can we use `Using` block in WF 4?我们可以在 WF 4 中使用 `Using` 块吗?
【发布时间】:2012-03-14 09:04:35
【问题描述】:

我是 Workflow 的新手,并且是 VB 中的一个傻瓜,所以,如果是我的弱问题,我很抱歉。

我正在尝试实现这样的 using 块:

using (var db = new Dal.DataContextProxy())
{
   //My Codes
}

sequence 中,我想在 using 块中启动 db。我该怎么做?我尝试了Assign,但似乎无法在其中使用Using Block

谢谢。

【问题讨论】:

    标签: workflow-foundation workflow-foundation-4 using using-statement


    【解决方案1】:

    您不能使用标准活动,但创建一个将数据库公开给其子项的使用活动并不难。确保您考虑工作流持久性,因为您可能无法在打开 SqlConnection 的块中间持久化和重新加载工作流状态。

    【讨论】:

    • 谢谢莫里斯。好吧,我认为最好将 db 作为输入参数传递给 Activity。你有什么建议?
    • 您的意思是作为使用活动的输入?好没问题。创建一个在结构上与 ForEach 非常相似的活动,您可以在其中获取输入表达式并将其公开给主体,当主体完成后,在输入上调用 Dispose()。这样您就可以根据需要创建新对象或传入现有对象。
    【解决方案2】:

    您可以尝试实现自己的NativeActivity 以关闭完整/故障处理程序上的连接,如documentations and samples 中所述。正如莫里斯所说,在您的特定场景中,您必须通过 ExecutionProperties 公开您的 DataContextProxy。

    类似的事情(适用于您的场景)已经完成,您可以在this Rory Primrose's blog post 上查看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-14
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2018-01-08
      • 2019-06-13
      相关资源
      最近更新 更多