我的解决方案中有一个 Windows 窗体项目和一个 Web 服务项目,我正在尝试调用 Web 服务并返回一个客户对象作为结果。问题是当我尝试接收返回对象时,我收到一个无法转换它的错误。例如,这是我的网络服务的签名:
Public Function GetDriverByID(ByVal DriverID As Integer) As Driver
这是我用来调用它的代码:
Dim d As Driver = mywebserviceinstance.GetDriverByID(1)
但我收到此编译时错误(wsDrivers 是我添加到表单项目中的 Web 引用的名称):“ProjectNamespace.Common.wsDrivers.Driver 类型的值无法转换为 ProjectNamespace.Common.Driver”
这个“Common”命名空间包含 Driver 类,我不确定为什么来自 Web 服务的返回类不仅仅是一个通用的“Driver”,而是一个“wsDrivers.Driver”,我无法转换回来了。有人知道我该如何处理这种类型不匹配吗?
编辑:感谢您的解释 - 这实际上清楚地说明了它在做什么。但是,有什么方法可以强制它使用实际类型而不是代理(或者,有什么方法可以在“真实”实例和“代理”实例之间进行转换),还是我必须在我通过网络发送它们之前序列化属性,然后手动反序列化返回值?