我有一個DataContract,我用它作爲WCF服務的返回類型。返回DataContract的子類
[DataContract]
public NameResult
{
[DataMember]
public string Name { get; set; }
}
不過,我想存儲在服務端的附加信息,所以我創建一個子類:
internal ServiceNameResult : NameResult
{
internal Guid ID { get; set; }
}
但是,似乎我無法使用此情況下,結果值(我得到的客戶端上的錯誤是不是非常有幫助 - 無法識別的錯誤109(0x6d)
基本上,如果我這樣做,
NameResult GetName()
{
NameResult result = {...}
return result;
}
。
然後,它的工作,但如果我這樣做;
NameResult GetName()
{
ServiceNameResult result = {...}
return result;
}
它沒有。我真的不想將這些屬性從ServiceNameResult複製到新的NameResult。希望有一種方法可以做到這一點?
我已經在子類上放了[IgnoreDataMember],但這沒什麼區別。
謝謝。
通常情況下,我會這樣做,但數據協定比這個功能稍微有點功能,我需要能夠透明地使用進入服務的實例(即NameResult)與服務中的實例(ServiceNameResult)相似,就好像它們是相同的。 – Barg
@ user302699 - 在您的場景中將當前數據合同中的行爲移至擴展方法或類似行爲可行嗎? – RQDQ