我對Workflow非常陌生,在VB中也是一個虛擬角色,所以,如果是我的弱點,我很抱歉。我們可以使用WF 4中的`使用'塊嗎?
我想實現這樣的使用塊:
using (var db = new Dal.DataContextProxy())
{
//My Codes
}
在序列,我想啓動數據庫在使用塊。我應該怎麼做?我嘗試了Assign,但似乎我不能在其中使用使用Block。
謝謝。
我對Workflow非常陌生,在VB中也是一個虛擬角色,所以,如果是我的弱點,我很抱歉。我們可以使用WF 4中的`使用'塊嗎?
我想實現這樣的使用塊:
using (var db = new Dal.DataContextProxy())
{
//My Codes
}
在序列,我想啓動數據庫在使用塊。我應該怎麼做?我嘗試了Assign,但似乎我不能在其中使用使用Block。
謝謝。
你不能使用標準的活動,但創建一個將數據庫暴露給它的孩子的使用活動並不難。請確保您考慮工作流持久性,因爲您可能無法在打開SqlConnection的塊的中間持續並重新加載工作流狀態。
您可以嘗試執行您自己的NativeActivity
以關閉完成/錯誤處理程序中的連接,如documentations and samples中所述。正如Maurice所說,在您的特定情況下,您必須通過ExecutionProperties公開您的DataContextProxy。
類似的東西(適用於您的方案)已經完成,您可以在this Rory Primrose's blog post上進行檢查。
謝謝Maurice。那麼,我認爲把db作爲Input Argument傳遞給Activity更好。你有什麼建議? – 2012-03-14 09:26:07
您的意思是作爲使用活動的輸入?好沒問題。創建一個與ForEach結構非常相似的活動,您可以在其中獲取輸入表達式並將其展示給主體,並在主體完成時調用輸入上的Dispose()。這樣你可以創建一個新對象或根據需要傳遞一個現有對象。 – Maurice 2012-03-14 09:40:31