# Dotnet > Gnral Dotnet > Windows Workflow Foundation >  Workflow, gnricit et envoi d'email

## aomec

Bonjour,

j'utilise depuis peu WF pour crer un workflow de gestion de demandes de droits sur des applications. A chaque tape du workflow, un mail doit tre envoy  des destinataires et objet variant selon l'tape dans laquelle on se trouve.

Je cherche  crer une activity gnrique _SendEmailActivity_ qui pourra tre rutilisable : pour l'instant je lui ai mis comme _DependencyProperty_ l'expditeur, le destinataire, l'objet ainsi que le corps du message et l'envoi du mail se fait dans la mthode _execute_ .

Je ne veux pas mettre dans cette _Activity_  le code qui permet de remplir le destinataire, objet, etc selon l'tape pour justement rester gnrique.

Je pensais donc crer une autre Activity genre *FillEmailParametersActivity* que je placerais avant chaque *SendEmailActivity* dans mon workflow, et je binderais les *DependencyProperties* de *SendEmailActivity* sur des _DependencyProperties_ de _FillEmailParametersActivity_ .
Ca serait donc dans _FillEmailParametersActivity_  que je mettrais le code qui me permet d'obtenir les bons destinataires.

J'ai pens sinon utiliser *CallExternalMethodActivity*, ou encore faire hriter *SendEmailActivity* de _SequenceActivity_ .. ?

J'espre avoir t clair.
Qu'en pensez-vous ? Quelle serait la meilleure solution pour avoir une *SendEmailActivity* rutilisable facilement ?

Merci de votre aide.

----------


## Benot Dion

Salut,

Il semble que ta SendMailActivity est implemente correctement. Tu exposes les champs que tu veux personalis avec des DP et tu les utilises dans la mthode Execute de ta SendMailActivity. C'est de cette manire que ton activit sera le plus gnrique. Pas si elle dpend d'une autre activit FillSendMailActivity ou autre.

Tu peux trouver une implmentation de SendMailActivity ici: http://msdn.microsoft.com/en-us/library/aa480214.aspx

Bonne chance,

Benoit Dion

----------


## aomec

Merci de ta rponse rapide.

En fait, si on regarde juste le destinataire, il dpend dans mon projet de la proprit *Demand.State* (pour la demande de droits), qui correspond en gros  l'tape dans laquelle on se trouve dans le workflow.

Je voudrais que *SendEmailActivity* soit gnrique de manire  pouvoir faire abstraction de l'objet *Demand*, c'est--dire pouvoir l'utiliser dans un autre projet de workflow.

Mon ide, c'est que d'un projet  un autre, seul le binding des DP change. Dans mon projet actuel, elles sont lies  des DP de *FillEmailParametersActivity* par exemple. 
Dans un autre projet, on pourrait ou non choisir d'utiliser *FillEmailParametersActivity*.
En gros, on ne touche pas ou presque au code de *SendEmailActivity*.

Si je fais comme tu dis, a sera difficilement rutilisable d'un projet  l'autre non ?

----------


## Benot Dion

Le but comme tu dis c'est de pouvoir reutiliser l'activit dans le plus grand nombre de projets possible. L'implementation de ton activit ne doit donc avoir aucune dpendance avec le reste du projet.

----------

