Es gibt einige Dinge zu beachten;
Es gibt zwei Möglichkeiten, einen Dienst innerhalb einer WF aufzurufen.
- Ein Weg ist mit Senden-Receive-Aktivitäten Stil Messaging, in dem man die Adresse des Dienstes (oder Konfiguration Endpunkt) sowie Methodennamen (einschließlich ihrer Namen) & Argumente angeben muss.
- Die andere Möglichkeit besteht darin, eine Service-Referenz zu verwenden. Wenn Sie eine solche Referenz verwenden, erstellt Visual Studio für jede Servicemethode eine dedizierte Aktivität. Dieser Weg scheint ein nativer Weg zu sein und verwendet eine WF-Aktivitätsabstraktion (so wenn möglich!).
Beachten Sie, dass die .XAMLX Datei, die deklarativ den WF-Dienst repräsentiert, zu der Dienst Referenzaktivität zeigen wird, welche schließlich in der DLL des Projektes gebündelt, die XAMLX in residiert.
Hinweis Auch, dass die generierte Service-Referenzaktivität auf eine WCF-Konfigurations-Client-Bindung verweist. Seit WF-A ist ein Kunde von WF-B.
Daher könnten Sie Folgendes tun:
Tu, was du in WF-A wollen - nur mit WF-B verwenden, indem die Servicereferenzaktivität verwendet wird.
Der Host von WF-A sollte eine Bezugnahme auf die Anordnung hat, in der WF-A.XAMLX befindet (was bedeutet, dass der Host die WF-B-Aktivität von seiner Service-Referenz haben wird). Das bedeutet, dass XamlX allein nicht genug für den Host ist.
In einer Dienst-Referenz (mit dem gleichen Namensraum wie in WF-A-Baugruppe verwendet wird) zu WF-B in dem Host von WF-A, die Client-Konfiguration des Host ändern, indem die führenden Namensräume in den Entfernungs Clientabschnitt im Vertragsnamen (IServiceB statt ServiceReference.IServiceB)
Der letzte Schritt bei der Konfiguration der Client-Bindungen werden könnte ersetzt von selbst, aber es ist viel einfacher, einen Dienstverweis verwenden (die Sie auch aktualisieren können)
Ist WF A die gleiche Instanz von WF Aufruf Strandzeit? – scmccart