2013-12-17 3 views
1

Наш клиент отправил нам WSDL-файл для своего API веб-сервисов. Мы использовали Visual Studio 'Add Service Reference', чтобы использовать его.Используйте другие классы DataContract, чем созданные

Однако: мы хотим генерировать служебный прокси, а не классы контрактов данных. Мы хотим повторно использовать классы, которые у нас уже есть в ссылочной сборке.

  • Как проинструктировать «Добавить ссылку на службу», чтобы не создавать классы Data Contract?
  • ... или как указать WCF использовать наши классы Data Contract из ссылочной сборки вместо этого?
+0

Как насчет элементов управления «Повторное использование» на вкладке «Дополнительно»? –

+0

создать контракт на обслуживание + контракт с данными и скопировать вставку, что вам нужно, и заменить все, что вам нужно использовать из существующей сборки. –

ответ

2

Это сводится к следующим параметрам на Advanced ... часть "Add Service Reference":

enter image description here

который также карту с опцией /r//reference в svcutil.exe.

Это значение по умолчанию включено, поэтому, если оно не работает: есть хорошие шансы, что ваши типы не являются точными совпадениями. Самый простой способ обеспечения точных совпадений - ссылаться на одну и ту же библиотеку dll из обоих проектов, или в худшем случае тот же .cs-файл (предпочтительна ссылка на dll, IMO). Пространство имен имен и имен данных является обычным преступником здесь и должно соответствовать точно (как и члены).

1

Добавьте свои данные к классам контрактов (или даже лучше создайте новую библиотеку для своих классов контрактов данных и повторно используйте как сервис, так и клиентскую часть) в проект, включая ссылки на службы. При добавлении новой служебной ссылки или обновлении существующей выберите «Типы повторного использования в ссылочных сборках».

0

Это старый, но у меня есть одно сомнение по этому поводу. Я могу обращаться к классам при добавлении ссылки на службу, это нормально Я не вижу эти классы при работе со всеми проектами внутри одного и того же решения в Visual Studio и добавлением ссылок на «проект».

Есть ли способ протестировать код на стороне клиента, используя все проекты внутри одного и того же решения в Visual Studio?

спасибо

Смежные вопросы