我試圖在wf4中創建自定義活動。我找到了一個教程/示例,並一直在使用它開始,但我似乎有問題。上下文不可用?
public sealed class SaveRequest : NativeActivity {
// Define an activity input argument of type string
[RequiredArgument]
public InArgument<Request> Request { get; set; }
// If your activity returns a value, derive from CodeActivity<TResult>
// and return the value from the Execute method.
protected override void Execute(NativeActivityContext context) {
Request Request = this.Request.Get(context);
Request.Id = Guid.NewGuid();
Request.Title = "New Test";
RequestMonkeyRepository Rep = new RequestMonkeyRepository();
Rep.save(Request);
}
}
上面的代碼在分配guid時總是出錯,並且出現空對象實例。我假設它是因爲我沒有將請求對象傳遞給工作流,但我無法看到他們在示例中如何做到這一點。
進出口運行一個控制檯應用程序,我的代碼執行低於
WorkflowInvoker.Invoke(new RequestMonkeyTest1.TestWorkflow());
'請求'不是由魔法設置的。你必須將它綁定到* something *。 *某事*必須以某種方式傳遞給工作流*。 – Will 2011-12-20 15:13:25
@謝謝。我不知道他們在這個例子中是如何做到這一點的,但認爲我想到了。我將一個idictionary對象傳遞給工作流。還沒有,但越來越接近 – 2011-12-20 15:46:13
請注意,您已將字符串值作爲傳遞給工作流的請求對象的索引? SaveRequest.Request必須綁定到該值。字符串索引必須是在工作流的根上定義的參數的名稱,並且請求必須綁定到此參數。因此,通過名稱將實例傳遞給工作流,工作流填充參數,然後在SaveRequest執行時計算綁定並從工作流上下文中檢索Request實例。 – Will 2011-12-20 16:29:51