2016-06-16 9 views

答えて

1

あなたは、全体のワークフローのスコープ内の変数のリポジトリとして機能するワークフローの拡張機能を使用することができます。

プロパティを含むワークフロー拡張を作成します。 ワークフローアプリケーションに拡張機能を追加します。 アクティビティ内からプロパティの値を設定または取得します。

は以下のあなたのコメントに応えて

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      
     } 

    } 
} 
+0

しかし、この場合、activity1の出力にアクセスしてそれを入力としてActivity2に送ることは可能ですか?まだActivity1のoutArgument変数を宣言する必要があると思います。そして、私は入力としてactivity2でそれを取得するために、ホストからExtensionクラスにその控除額を割り当てることができますか?私が間違っている場合、私を正解してください... – user3883423

関連する問題