我在我的服務器DLL類庫中有這樣的Scneario。在WCF中使用新的關鍵字隱藏基類屬性
[DataContract]
public class Base
{
[DataMember]
public string Info { get; set; }
}
[DataContract]
public class Child : Base
{
[DataMember]
public new int Info { get; set; }
public int Save()
{
}
}
我在客戶端的WCF代理創建一個引用類。它將「Info」重命名爲「Info1」。並顯示適當的屬性在基類。我的代碼編譯偉大。到現在爲止還挺好。當我嘗試從我的客戶端運行ChildProxy.Save()它給了我錯誤說
「,而試圖序列參數http://tempuri.org/:info有一個錯誤,該消息的InnerException是「類型‘ClientServiceLayer.InfoService.Info’數據合同不需要名稱'ArrayOfInfo:http://schemas.datacontract.org/2004/07/Info_DLL'。將未知的靜態類型添加到已知類型列表中 - 例如,使用KnownTypeAttribute屬性或將它們添加到已知類型的列表傳遞給DataContractSerializer'。請參閱InnerException獲取更多詳細信息。 「
如何在WCF中隱藏基類的屬性?
UPDATE:
這裏是關於客戶端
InvoiceServiceClient infoProxy = new InfoServiceClient();
invId = invfoProxy.Save();
是的,我們有一個服務類這個類調用保存method..so有意不保持它的頂部.. 。這是客戶端的代碼InvoiceServiceClient infoProxy = new InfoServiceClient(); invId = invfoProxy.Save();' – Hakim