[英]State Machine Persistence WorkFlow
嘿,我創建了一個WinForms,用於使用Windows WorkFlow Foundation處理持久性活動。 我使用.NET 3.0 SQL和VS2005作為IDE,以C#作為代碼語言。 另外,公司的發展政策規定了環境對我的強制性。 因此,在恐龍決定升級之前,我一直堅持使用VS2005。
我的想法是,我一次可以處理1個工作流程,並且希望能夠處理多個工作流程。 就像我單擊表單上的Submit按鈕一樣,我希望能夠創建一個新的WorkFlow實例。
我創建了運行時,並添加了所有適當的服務。 我加入了持久性,當我單擊“提交”時,我啟動了WorkFlow的實例。 我是WorkFlow Foundation的新手,MSDN鏈接對我幾乎沒有幫助。 如果有人可以在我的源代碼中讓我處於正確的位置,那將很有幫助。
我已經為我的項目的源附加了一個鏈接。
提前致謝!
我看了一下,似乎每次單擊提交時您都在創建一個新的工作流。 我得到一個新的實例ID,這是一個好兆頭:) PopulatePSUP(string instanceID)捕獲下拉列表的實例ID。 但是您一次只在Guid _instanceID中存儲一個實例ID。 然后將此表單級別變量用於所有按鈕事件。 您可以使用cboPSUPItems.Text。
就像是:
private void btnPSUPApprove_Click(object sender, EventArgs e)
{
string instanceId = this.cboPSUPItems.Text;
if ( instanceId.Length > 0 )
{
myArgs.Approved = true;
approved = "Yes";
this.resumeHistory[ instanceId ].Clear( );
this.resumeHistory[ instanceId ].Add( "Name: " + applicantName );
this.resumeHistory[ instanceId ].Add( "Email:" + applicantEmail );
this.resumeHistory[ instanceId ].Add( "Text:" + applicantText );
this.resumeHistory[ instanceId ].Add( "Approved:" + approved );
this.resumeHistory[ instanceId ].Add( "Denied:" + denied );
this.resumeHistory[ instanceId ].Add( "PD Approval Requested:" + pDRequest );
resumeService.RaisePSUPApprovedEvent( new Guid(instanceId) , myArgs );
this.cboPSUPItems.Items.Remove( this.cboPSUPItems.SelectedItem );
txtPSUPNotes.Clear( );
}
}
您可能還想考慮使用集合/列表來存儲instanceIds。 對於任何工作流程范圍的邏輯。
就像是:
List<Guid> _instanceIds = new List<Guid>( );
...
_instanceIds.Add( instance.InstanceId );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.