У меня есть проект форм Windows и проект веб-службы в моем решении, и я пытаюсь вызвать веб-сервис и вернуть в результате объект клиента. Проблема в том, что когда я пытаюсь получить возвращаемый объект, я получаю сообщение об ошибке, что он не может его преобразовать. Например, вот подпись для моего веб-сервиса:
Public Function GetDriverByID(ByVal DriverID As Integer) As Driver
А вот код, который я использую для его вызова:
Dim d As Driver = mywebserviceinstance.GetDriverByID(1)
Но я получаю эту ошибку времени компиляции (wsDrivers - это имя веб-ссылки, добавленной в проект формы): «Значение типа ProjectNamespace.Common.wsDrivers.Driver невозможно преобразовать в ProjectNamespace.Common.Driver «
Это «общее» пространство имен содержит класс Driver, и я не уверен, почему класс возврата из веб-службы - это не просто универсальный «Driver», а вместо этого «wsDrivers.Driver», и я могу не конвертируй обратно. Кто-нибудь знает, как я могу справиться с этим несоответствием типов?
РЕДАКТИРОВАТЬ: Спасибо за объяснения - это на самом деле проясняет, что он делает. Тем не менее, есть ли способ, которым я могу заставить его использовать фактический тип вместо прокси (или, скорее, есть ли способ конвертировать между «реальным» экземпляром и «прокси»), или я должен сериализовать свойства до того, как я отправлю их по проводам, а затем вручную десериализовать возвращаемые значения?