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);
}
}
nullオブジェクトインスタンスと常にエラーアウトGUIDを割り当てる上記のコード。私はhaventがワークフローに要求オブジェクトを渡したので、私はそれを推測していますが、私は彼らがこの例でどのようにしたかを見ることができません。
イムコンソールアプリケーションを実行しているし、私の実行コードは、あなたは、Requestオブジェクトのインスタンスを返すいくつかの式にあなたのワークフローで要求InArgumentを設定しました
WorkflowInvoker.Invoke(new RequestMonkeyTest1.TestWorkflow());
「リクエスト」は魔法によって設定されていません。それを* something *にバインドする必要があります。その*何か*は何とか*ワークフローに渡されなければなりません。 – Will
@ありがとう。私は彼らが例でそれをした方法を見ることができませんが、iveはそれを考え出したと考えます。私はidictionaryオブジェクトをワークフローに渡します。まだありませんが近いです –
ワークフローに渡されるリクエストオブジェクトのインデックスとして文字列値を指定したことに注目してください。 SaveRequest.Requestは、その値にバインドされている必要があります。文字列インデックスは、ワークフローのルートで定義された引数の名前でなければならず、要求はこの引数にバインドされている必要があります。したがって、名前によってインスタンスがワークフローに渡され、ワークフローが引数を取り込み、SaveRequestが実行されるときにバインディングが評価され、Requestインスタンスがワークフローコンテキストから取得されます。 – Will