我有一个 WCF 客户端-服务器设置。在服务器端,我在我的服务方法中使用接口作为返回类型,然后使用<ServiceKnownTypeAttribute>
. 所有这一切都很好。
但是,有一个问题非常烦人。当我向客户端添加服务引用时,生成的存根方法的返回类型均为object
. 因此,我的客户端上不再存在 Intellisense。我完全能够使用返回值并且可以访问属性,但我必须进行强制转换才能“恢复”智能感知。
例子:
服务器方法:
<OperationContract()>
<ServiceKnownTypeAttribute(GetType(Something))>
Function GetSomething() As ISomething Implements Iservice.GetSomething
生成的存根:
Function GetSomething() As Object Implements Iservice.GetSomething
客户端代码(必须在此处强制转换,因为存根返回类型是对象):
Dim s As ISomething= CType(client.GetSomething(), ISomething)
我是否遗漏了什么,或者这只是正常的行为。由于对象可以序列化并且一切正常,我无法理解为什么我的存根不是特定类型的。
谢谢
乔纳斯