Il y a deux choses à noter;
Il existe deux manières d'appeler un service dans un fichier WF.
- Une façon utilise Send-Receive messagerie style activités, dans lequel on doit indiquer l'adresse du service (ou point final de configuration), ainsi que le nom de la méthode & des arguments (y compris leurs noms).
- L'autre façon consiste à utiliser une référence de service. Lors de l'utilisation d'une telle référence, Visual Studio créera une activité dédiée pour chaque méthode de service. Cela semble être une manière native et utilise une abstraction d'activité WF (utilisez-la de cette façon si possible!).
Notez que le fichier .XAMLX, qui représente déclarative le service WF, pointera à l'activité de référence de service spécifique, qui est, par la suite livré dans la dll du projet qui XAMLX réside.
Remarque également que l'activité de référence de service générée pointe vers une liaison de client de configuration WCF. Depuis WF-A est un client de WF-B.
Par conséquent, vous pouvez effectuer les opérations suivantes:
Faites ce que vous voulez dans WF-A - il suffit d'utiliser WF-B avec l'aide de l'activité de référence de service.
Le hôte de WF-A doit avoir une référence à l'ensemble dans lequel réside WF-A.XAMLX (ce qui signifie que l'hôte aura l'activité WF-B à partir de sa référence de service). Ce qui signifie que le XamlX, en lui-même, n'est pas suffisant pour l'hôte.
Ajouter une référence de service (avec le même espace que celui utilisé dans WF-Ensemble) à WF-B dans le hôte de WF-A, modifier la configuration du client de l'hôte en supprimant les grands espaces de noms dans la section client dans le nom du contrat (IServiceB au lieu de ServiceReference.IServiceB)
La dernière étape pourrait être remplacée par la configuration des liaisons client par vous-même, mais il est beaucoup plus facile en utilisant une référence de service (que vous pouvez également mettre à jour)
est-WF Un appel de la même instance de WF B chaque fois? – scmccart