Ce code simple échoue avec l'erreur suivante:Comment affecter un argument à la variable dans Workflow Foundation 4.0?
Les erreurs suivantes ont été rencontrées lors du traitement de l'arbre de workflow:
« ArgumentValue »: L'argument nommé « paramètre » n'a pas pu être trouvé sur l'activité posséder ces enfants privés. ArgumentReference et ArgumentValue ne doivent être utilisés que dans le corps d'une définition d'activité.
J'ai aussi essayé VisualBasivValue ("Paramètre") au lieu de ArgumentValue, et l'erreur était:
Les erreurs suivantes ont été rencontrées lors du traitement de l'arbre de workflow:
'VisualBasicValue': compilateur erreur (s) rencontrée (s) lors du traitement de l'expression "Parameter". 'Paramètre' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
Comment le faire correctement?
J'ai essayé de construire quelque chose de semblable en XAML, et il fonctionne, voici le code:
<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>
On dirait qu'il fait référence au paramètre en quelque sorte, mais comment ...
Comment puis-je faire dans le code? Voici mon scénario simple:
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);
}
}
Merci beaucoup pour toute aide!