2010-07-07 19 views
2

Je souhaite créer une activité de fondation de flux de travail réutilisable personnalisée basée sur l'activité FlowChart. Toutes les classes intégrées sont scellées donc je ne peux pas en hériter. Ces activités seront utilisées dans une application qui réhéberge le concepteur de workflow et utilisée par des non-développeurs. Je peux hériter de la classe NativeActivity. Cependant, j'ai besoin de pouvoir glisser et déposer des activités dans cette activité personnalisée, tout comme l'activité FlowChart. Résumé: Quelqu'un at-il un exemple ou des idées sur la façon d'implémenter une activité de workflow personnalisée qui se comporte comme FlowChart (dans le concepteur et à l'exécution) mais qui me permet d'étendre la classe avec ma propre logique personnalisée ?Étendre Workflow Foundation FlowChart

Je pense que je peux simplement rechercher ou réutiliser le même ActivityDesigner que le FlowChart utilise. Est-ce possible?

+0

Exactement quel comportement recherchez-vous? De quelle manière agira-t-il comme un FlowChart? – Gabe

+0

Je suis également curieux, et je pense que la réponse a quelque chose à voir avec l'implémentation d'une activité personnalisée et d'une classe de concepteur d'activités personnalisées. Je pense que la vue d'organigramme vient alors dans le cadre de l'interaction du concepteur WF avec la classe de conception d'activité personnalisée. – codekaizen

+0

Je ne suis même pas sûr quel ActivityDesigner est utilisé pour créer un FlowChart. – Gabe

Répondre

0

Si je devais faire ceci, j'irais probablement dans Reflector et trouverais la classe que je veux modifier, puis la copierais et la collerais dans un projet dans VS. À ce stade, je compilerais, découvrirais d'autres classes internes/privées et en copierais d'autres. Après avoir itératu une douzaine de fois, j'aurais quelque chose qui compile sans erreurs et je peux commencer à l'intégrer dans le reste de mon système.

Ce n'est pas joli, mais je ne pense pas qu'il existe un autre moyen d'étendre une classe interne ou privée.

Bien sûr, vous pourriez faire tout cela, seulement pour trouver que le concepteur a un code de cas spécial qui cherche la classe particulière que vous voulez étendre, de sorte que l'obtention du comportement que vous voulez est impossible.

+0

Il apparaît de plus en plus que ce que je suis à la recherche est de dire à mon nouvelle activité personnalisée (qui hérite de NativeActivity tout comme l'activité FlowChart) pour utiliser FlowChart Designer en ajoutant l'attribut [Designer (...)]; cependant, il semble que le Concepteur de FlowChart n'est pas public ou qu'il dispose d'un processeur public, donc je n'arrive pas à y accéder.Je veux fondamentalement la fonctionnalité de concepteur de FlowChart dans le concepteur de flux de travail, mais la fonctionnalité d'activité native personnalisée, si cela est logique. –

1

rock! Je pense que vous pouvez utiliser cette approche: vous avez des activités de code scellées intégrées (flowstep, flowdecision) que vous ne pouvez pas modifier, mais vous pouvez créer d'autres concepteurs (c'est-à-dire l'interface utilisateur) pour eux. J'ai réussi à personnaliser de cette façon le concepteur de flowdecision, en ajoutant des déclencheurs pour appliquer des effets de couleur. De plus, vous pouvez lui affecter automatiquement la condition (en la liant à une variable de diagramme interne par exemple) en utilisant des substitutions de classe ActivityDesigner de base.