Dans un WorkflowDesigner de rehost, je veux attribuer un valiable à InArguments par le code suivant:Comment créer une nouvelle InArgument <T> où T peut être modifié de manière dynamique
Type inActivityType = leftActivity.GetType();
PropertyInfo inPropInfo = inActivityType.GetProperty(inArgumentName);
InPropInfo.SetValue(leftActivity,
new InArgument<someType>(new VisualBasicValue<someType>(variableName)),
null);
Depuis le « UnType » est attribué à différents tapez dynamiquement, la façon régulière de créer un nouvel InArgument ne fonctionnera pas. Une idée que j'ai trouvé est:
// Type theType - the value of theType will be assigned dynamicly,
// base on different InArgument be selected
Type InArgType = typeof(InArgument<>).MakeGenericType(new[] { theType });
object InArg = Activator.CreateInstance(InArgType);
. . .
InPropInfo.SetValue(leftActivity,
InArg,
null);
Mais le problème est, je ne peux créer une nouvelle InArgument, mais ne peut pas attribuer de nouveaux VisualBasicValue (variableName) à elle.
Merci pour votre idée.
Merci beaucoup. Sur la dernière ligne de code, nous devons aussi passer vbValue, non? – Yadong
+1 pour abandonner les génériques. Vous soufflez tous les avantages des génériques en faisant cela. – Will
@Yadong correct. – vcsjones