1:使用WorkflowInvoker向工作流傳遞參數
當宿主進程啟動一個工作流時,傳遞一些自定義啟動參數是很常見的情況,WorkflowInvoker的Invoke方法有很多重載,其中允許你向工作流傳遞啟動參數,這些參數保存在一個Dictionary變量中,它包含的名稱/值對可用來設置工作流中的同名(同類型)的參數變量
2:使用工作流設計器定義參數
可以使用工作流設計器來定義參數並獲取字典數據。在解決方案中,右擊Workflow1.xaml選擇View Designer(視圖設計器),注意在設計器底部有一個名為Arguments(參數)的按鈕,單擊該按鈕,在彈出的UI中,添加一個string類型的輸入參數Message (不需要為該類型指定默認值)。
static void Main(string[] args)
{
string wfData = Console.ReadLine();
//這里用Dictionary類型,因為Invoke重載接受這種鍵值對的類型
Dictionary wfArgs = new Dictionary();
//使用鍵值對,鍵為我們剛才加的參數名稱,將數據存入到字典中
wfArgs.Add("Message",wfData);
//傳遞給工作流
WorkflowInvoker.Invoke(new Workflow1(),wfArgs);
}
注意:Dictionary<>變量中的每個成員鍵必須與工作流中相應的參數變量名一致,運行程序,我們像頻幕輸入123,工作流輸出123