2

這個簡單的代碼失敗,出現以下錯誤:如何爲Workflow Foundation 4.0中的變量分配參數?

「ArgumentValue」:在處理工作流樹時遇到

以下錯誤名爲「參數」的論點不能在活動中找到擁有這些私人孩子。 ArgumentReference和ArgumentValue只能在Activity定義的主體中使用。

我也試過VisualBasivValue( 「參數」),而不是ArgumentValue,錯誤是:

'VisualBasicValue':在處理工作流樹時遇到

以下錯誤編譯器遇到處理表達式「參數」的錯誤。 '參數'未被聲明。由於其保護級別,它可能無法訪問。

如何正確地做到這一點?

我試圖建立在XAML類似的東西,和它的作品,這裏是代碼:

<Assign sap:VirtualizedContainerService.HintSize="242,58"> 
    <Assign.To> 
     <OutArgument x:TypeArguments="x:String">[variable]</OutArgument> 
    </Assign.To> 
    <Assign.Value> 
     <InArgument x:TypeArguments="x:String">[Parameter]</InArgument> 
    </Assign.Value> 
</Assign> 

看起來像它所引用的參數莫名其妙,但如何...

我該怎麼辦它在代碼? 這裏是我的簡單的方案:

public class RootActivity : NativeActivity 
{ 
    public InArgument<string> Parameter { get; set; } 

    public Activity Activity { get; set; } 

    public RootActivity() 
    { 
     var variable = new Variable<string>("V1", "This is my variable!"); 
     var activity = new Sequence 
      { 
       Variables = {variable}, 
       Activities = 
       { 
        new Assign<string> 
        { 
         To = new OutArgument<string>(variable), 
         Value = new InArgument<string>(
          new ArgumentValue<string>("Parameter")); 
        }, 
       } 
      }; 

     this.Activity = activity; 
    } 

    protected override void Execute(NativeActivityContext context) 
    { 
     context.ScheduleActivity(this.Activity); 
    } 
} 

非常感謝您的幫助!

回答

0

我不完全確定,但有一件事我注意到了。

我發現試圖在構造函數中配置活動通常不起作用。建議在IActivityTemplateFactory的創建方法中執行此操作。

更改您的代碼,以便實現此方法,然後將代碼從構造函數移至Create方法。這可能不是你的全部問題,但它可能是其中之一。

0

試試這個:

new Assign<string> 
{ 
    To = new OutArgument<string>(variable), 
    Value = new InArgument<string>(
     env => Parameter.Get(env)); 
}, 
1

您在和珍視設置實際上VisualBasicReference和VisualBasicValue的表達。您的XAML的等效代碼是:

new Assign<string> 
     { 
      To = new VisualBasicReference<string>("V1"), 
      Value = new VisualBasicValue<string>("Parameter") 
     }; 
相關問題