Следует отметить несколько вещей:
Существует два способа вызова службы в WF.
- Одним из способов является использование обмена сообщениями в стиле действий отправки и получения, в котором необходимо указать адрес службы (или конечную точку конфигурации), а также имя и аргументы метода (включая их имена).
- Другой способ - использовать справочную службу.При использовании такой ссылки Visual Studio создаст отдельное действие для каждого метода обслуживания.Этот путь кажется естественным и использует абстракцию активности WF (используйте этот путь, если это возможно!).
Обратите внимание, что файл .XAMLX, декларативно представляющий службу WF, будет указывать наконкретная операция ссылки на службу, которая в конечном итоге связана с dll проекта, в котором находится XAMLX.
Обратите также внимание, что созданная операция ссылки на службу указывает на некоторую привязку клиента конфигурации WCF.Поскольку WF-A является клиентом WF-B.
Следовательно, вы можете сделать следующее:
Делать все, что вы хотите в WF-A - просто используйте WF-B с помощью службы справочной деятельности.
Хост WF-A должен иметь ссылку на сборку, в которой находится WF-A.XAMLX (что означает, что хост будет иметь WF-B деятельность из своей справочной службы).Это означает, что XamlX сам по себе недостаточно для хоста.
Добавить ссылку на службу (с тем же пространством имен, что и в сборке WF-A) к WF-B в хост WF-A, измените конфигурацию клиента хоста, удалив начальные пространства имен в разделе клиента в имени контракта (IServiceB вместо ServiceReference.IServiceB)
Последний шаг можно заменить на настройку привязок клиента самостоятельно, но гораздо проще использовать справочную службу (которую также можно обновить)