【问题标题】:WCF - DataContract that inherits from an interfaceWCF - 从接口继承的 DataContract
【发布时间】:2010-06-02 14:51:20
【问题描述】:

我有一个数据契约作为我的 WCF 接口的一部分,它继承自 IIdentity:

 [DataContract]
 public class AuthenticationIdentity : IIdentity
 {
    //implements IIdentity...
 }

服务返回我的 AuthenticationIdentity 对象就好了。但是,当我尝试在客户端上做明显的演员时:

AuthenticationIdentity aId = client.GetID();
IIdentity id = aId;

我收到一条投诉,称 AuthenticationIdentity 无法转换为 IIdentity。我尝试将 ServiceKnownTypes 添加到界面:

[ServiceKnownType(typeof(AuthenticationIdentity))]
[ServiceKnownType(typeof(IIdentity))]

但仍然没有运气。有什么想法吗?

【问题讨论】:

    标签: wcf interface datacontract


    【解决方案1】:

    如果您控制电线的两侧(看起来像您这样做,因为您想强制转换为IIdentity),您可以从共享程序集中引用您的DataContract。然后你可以在服务和消费者之间使用svcutil to share the DataContracts。或者,如果您想完全删除 svcutil,您可以编写自己的代理来使用共享程序集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      相关资源
      最近更新 更多