Я создал несколько служб WCF, для аргументов они называются Service1 и Service2 .
Обе службы возвращают (в какой-то момент, возможно, через отношения внутри объекта) Клиент объект.
Для тестирования я добавил метод GetCustomer () для Service1 и Service2, а также добавил ссылку на службу для обеих служб в базовом приложении WinForms.
Service1Client proxy1 = новый Service1Client ();
Customer customer1 = proxy1.GetCustomer (); //
^^^^^^ Неоднозначная ссылка, требует, чтобы я назвал WcfTestClient.Service1.Customer
Service2Client proxy2 = новый Service2Client ();
Customer customer2 = proxy2.GetCustomer ();
^^^^^ Неоднозначная ссылка, требует, чтобы я назвал WcfTestClient.Service2.Customer
Проблема в том, что объект Customer, возвращаемый Service1 и Service2 , относится к типу Customer одного и того же (WcfTestService.Customer). Чтобы исправить это, мне нужно указать полное имя сборки, а не просто Customer.
Я прочитал несколько постов о переполнении стека, в которых говорится, что есть возможность скомпилировать контракты данных в отдельную сборку. Мне эта идея не особо нравится, поскольку она все еще может вызывать проблемы с клиентами, использующими другие языки, такие как Java .
Другое решение, которое я видел, - это метод SvcUtil.exe, но из того, что я видел, это решение не решает мою проблему с пространством имен, поскольку мне нужно запускать Util для каждой службы отдельно?
Если у кого-нибудь есть полезные предложения, пожалуйста, свяжитесь с нами!