2010-06-02 54 views
2

繼承我有一個datacontract爲從IIdentity的繼承我的WCF接口的一部分:WCF - DataContract從接口

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

服務返回我AuthenticationIdentity對象就好了。然而,當我嘗試做客戶端上的明顯轉換:

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

我得到AuthenticationIdentity不能轉換爲IIdentity的投訴。我嘗試添加ServiceKnownTypes接口:

但仍然沒有運氣。有任何想法嗎?

回答

3

如果您控制導線的兩側(它看起來像您想要投射到IIdentity),您可以從共享程序集中引用您的DataContract。然後你可以在服務和消費者之間使用svcutil to share the DataContracts。或者,如果您想徹底刪除svcutil,則可以編寫自己的代理來使用共享程序集。