私は最近、ワークフローの作業を開始しました。OutArgument
を使用して、1つのアクティビティの出力を別の入力に渡すことができます。OutArgument
を使用せずに可能です。アウトバウンドを使用せずにワークフローの出力を別のワークフローに渡す方法はありますか?
可能であればどうすればいいですか?
おかげで、すべての
私は最近、ワークフローの作業を開始しました。OutArgument
を使用して、1つのアクティビティの出力を別の入力に渡すことができます。OutArgument
を使用せずに可能です。アウトバウンドを使用せずにワークフローの出力を別のワークフローに渡す方法はありますか?
可能であればどうすればいいですか?
おかげで、すべての
あなたは、全体のワークフローのスコープ内の変数のリポジトリとして機能するワークフローの拡張機能を使用することができます。
プロパティを含むワークフロー拡張を作成します。 ワークフローアプリケーションに拡張機能を追加します。 アクティビティ内からプロパティの値を設定または取得します。
は以下のあなたのコメントに応えて
https://msdn.microsoft.com/en-us/library/ff460215(v=vs.110).aspxを参照してください。
あなたは間違っています。拡張子は、例えば活動2.
に利用可能であるアクティビティ1の出力を「保持」:
性質を保持するクラスを作成します。
public class PropertyStoreExtension
{
int _myProperty
public int MyProperty
{
get
{
return this._myProperty;
}
set
{
this._myProperty = value;
}
}
}
はあなたの拡張機能としてこれを追加しますワークフロー:
PropertyStoreExtension propertyStoreExtension = new PropertyStoreExtension
WorkflowInvoker myWorkflowInstence = new
WorkflowInvoker(myWorkflowDefinition());
myWorkflowInstence.Extensions.Add(propertyStoreExtension);
myWorkflowInstence.Invoke()
あなたのワークフローでは、2つの活動が含まれています: 最初は延長でそれをその「出力」を受け取り、格納します。
public class Activity1_SetProperty: CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
PropertyStoreExtension pse =context.GetExtension<PropertyStoreExtension>();
if (pse != null)
{
pse.MyProperty=outputValue;
}
}
}
2番目の値は拡張子から値を取得します。
public class Activity2_GetProperty: CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
PropertyStoreExtension pse =context.GetExtension<PropertyStoreExtension>();
if (pse != null)
{
int intputValue; = pse.MyProperty
}
}
}
しかし、この場合、activity1の出力にアクセスしてそれを入力としてActivity2に送ることは可能ですか?まだActivity1のoutArgument変数を宣言する必要があると思います。そして、私は入力としてactivity2でそれを取得するために、ホストからExtensionクラスにその控除額を割り当てることができますか?私が間違っている場合、私を正解してください... – user3883423