svcutil.exe проблема исключения типов - PullRequest
1 голос
/ 17 мая 2010

Мой сервис использует тип Foo, определенный в другой DLL, и мой клиент также использует эту DLL для получения этого типа. Вместо того чтобы создавать прокси-класс для этого типа, я бы хотел, чтобы прокси-код просто ссылался на реальный тип. Я могу сделать это вручную, сгенерировав прокси с WSDL.EXE на работающем сервисе, вручную отредактировав из него частичное определение класса Foo и добавив оператор Using. Я хотел бы сделать это без ручного редактирования, если это возможно.

Похоже, что ответом может быть использование SVCUTIL.EXE вместо WSDL.EXE. Есть два интригующих варианта: / R и / ET. Я попытался поместить / ET: Foo и /ET:My.FQN.Util.Foo и /ET:www.my.com.the.servicenamespace.Foo, а также добавить имя файла DLL к этой опции. Но ничего не меняется в создаваемом прокси-классе ServiceWithFoos.cs. Частичное определение класса для Foo все еще там.

Я на правильном пути? Что я делаю не так?

1 Ответ

0 голосов
/ 17 мая 2010

Добавьте [DataContract(Namespace = "http://anything.here")] к вашему типу Foo, затем используйте svcutil с параметром / r, указав путь к библиотеке, содержащей Foo. Таким образом, svcutil должен видеть одно и то же пространство имен контракта и правильно отображать Foo.

...