Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF-从接口继承的DataContract_Wcf_Interface_Datacontract - Fatal编程技术网

WCF-从接口继承的DataContract

WCF-从接口继承的DataContract,wcf,interface,datacontract,Wcf,Interface,Datacontract,我有一个datacontract作为我的WCF接口的一部分,它继承自IIdentity: [DataContract] public class AuthenticationIdentity : IIdentity { //implements IIdentity... } 服务返回我的AuthenticationIdentity对象很好。但是,当我尝试在客户机上执行明显的强制转换时: AuthenticationIdentity aId = client.GetID(); I

我有一个datacontract作为我的WCF接口的一部分,它继承自IIdentity:

 [DataContract]
 public class AuthenticationIdentity : IIdentity
 {
    //implements IIdentity...
 }
服务返回我的AuthenticationIdentity对象很好。但是,当我尝试在客户机上执行明显的强制转换时:

AuthenticationIdentity aId = client.GetID();
IIdentity id = aId;
我接到一个投诉说身份认证不能被转换成身份认证。我已尝试将ServiceKnownTypes添加到界面:

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

但还是没有运气。有什么想法吗?

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