2009-07-04 8 views
0

1) Quelle est la différence entre Code et Callexternalmethod?Quelques questions sur Workflow Foundation

2) Avec des constructions telles que le retard, ceci peut être codé dans une méthode. Quel avantage y a-t-il à le faire dans le flux de travail au lieu du code?

3) J'essaie d'écrire un CMS piloté par le workflow. Une page sera publiée en fonction de l'état (valeur sélectionnée) d'une énumération. Pour ce faire, j'ai besoin de la variable type dans le code du workflow derrière laquelle je trouve désordonné. Même alors, comment puis-je dire « Si (revisionStatus = RevisionStatus.Publish) dans un bloc IfElse? J'ai un objet d'une page Web dans un autre projet qui définit l'énumération dans son constructeur.

Merci

Répondre

1

1) Un code L'activité place les stubs de méthode dans la même classe que le flux de travail (Le concepteur de flux de travail fonctionne de la même manière que le concepteur Windows Forms.) Si vous cliquez sur 'Afficher tous les fichiers' sur votre projet, vous voyez les flux de travail.
CallExternalMethod appelle une méthode qui existe dans une autre classe.Vous n'avez donc pas besoin de mettre toute votre logique dans la même classe que le flux de travail, vous pouvez l'étendre à travers d'autres classes comme vous le feriez normalement

2) Je suppose que si c'est une partie importante du comportement de vos applications, c'est agréable de le voir sur le flux de travail (pour que vous puissiez avoir un bon aperçu visuel de ce qui se passe). En outre, avec l'activité de délai de flux de travail, votre flux de travail est marqué comme inactif. Donc, si vous utilisez un service de persistance, votre flux de travail devient automatique à ce stade. Il y a aussi l'événement WorkFlow OnIdle que vous pourriez prendre en dehors du flux de travail. Je ne sais pas si cela s'applique aux retards via le code.

3) Je ne suis pas sûr de comprendre correctement celui-ci. Si vous passez quelque chose dans un flux de travail, vous aurez besoin d'une propriété/d'un champ pour le lier, mais la définition de type ne doit pas nécessairement se trouver dans la même classe/ensemble. Tant que le projet dans lequel vit le flux de travail peut faire référence à celui dans lequel vit Enum, ça devrait aller.
Cliquez sur votre succursale if else, sélectionnez les propriétés. Cliquez sur la case Condition, remplacez-la par * Condition de règle déclarative *. Attribuez un nom à votre condition. Dans la zone Expression, entrez votre instruction If comme vous le feriez normalement dans le code.

Questions connexes