J'ai une activité Workflow 4 qui peut être exécutée sur n'importe quel nombre de classes qui héritent de ma classe de base. Donc, l'activité est, naturellement, générique. Similaire aux activités ForEach ou AddToCollection, mon activité nécessite un paramètre de type.Une activité générique WF4 peut-elle être déclarée en XAML?
Ma question est: puis-je créer cette activité dans le concepteur avec XAML? Gardez à l'esprit que c'est une activité composite, donc le concepteur semble être le meilleur choix.
Si je devais créer dans le code, il ressemblerait à ceci:
public class MyGenericActivity<T> : Activity where T : MyBaseClass
{
//args would go here
public MyGenericActivity()
{
this.Implementation =() => new Sequence
{
Activities = { //... }
};
}
}
Bien que cette solution fonctionnerait, l'entretien serait certainement douloureux et vous ne recevez pas une des « subtilités » du concepteur, de cette façon.
Eh bien, malheureusement, je n'ai pas trouvé un bon moyen de le faire. J'ai donc dû refactoriser certaines activités (y compris cette activité composite) afin qu'elles prennent un InArgument et que les instances des classes soient transmises en tant que System.Object. Cela laisse un très mauvais goût dans ma bouche, mais c'est la seule façon que je pourrais trouver qui nous empêcherait d'avoir 20 à 30 workflows xaml qui font exactement la même chose. Merci pour votre contribution. –