Как мне избежать параметров веб-методов, используя прокси-классы? - PullRequest
4 голосов
/ 13 мая 2010

У меня есть сериализуемый POCO под названием DataUnification.ClientData.ClientInfo в проекте библиотеки классов .NET A .

Используется в параметре для веб-службы, определенной в проекте B :

public XmlDocument CreateNewClient(ClientInfo ci, string system)

Теперь я хочу вызвать этот веб-метод из проекта C и использовать исходный тип DataUnification.ClientData.ClientInfo в параметре. Однако из-за сгенерированного прокси-класса теперь он стал другого типа: WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo.

Что касается .NET, это не те же типы.

Как я могу обойти это?

Ответы [ 4 ]

2 голосов
/ 02 июля 2012

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

enter image description here

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

Можно использовать automapper http://automapper.codeplex.com/ для создания нового DataUnification.ClientData.ClientInfo из экземпляра WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo.

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

Вы можете «показать все файлы» и скопировать содержимое сгенерированного reference.cs в новый файл, а затем удалить сгенерированный прокси-сервер и все его зависимые файлы.

Теперь в вашем новом reference.cs удалите сгенерированные классы dto и обновите все ссылки.

Это короткий уродливый путь.

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

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

Мое второе предложение - использовать такой инструмент, как Фабрика веб-сервисов, который позволяет вам повторно использовать существующие классы, когда он генерирует код (если классы подходят).

...