我有一個WCF服務,其中有一些操作接受非泛型基類作爲參數。在WCF中使用自定義的DataContractResolver,傳輸涉及泛型的繼承樹
[DataContract]
class Foo
{ ... }
這個基類又繼承,通過這樣的泛型類作爲
[DataContract]
class Bar<T> : Foo
{ ... }
爲了得到這個工作,我以前有註冊的Foo類KnownTypes,並有這些包括Bar的所有可能的變體(如Bar<string>
,Bar<int>
甚至Bar<List<string>>
)。但是,使用.NET 4中的DataContractResolver,我應該能夠構建一個正確存儲(並恢復)類的解析器。
我的問題:
是否DataContractResolvers通常只用在服務端,而不是由客戶端?如果是這樣,那麼在這種情況下這將如何有用?
我寫錯了一個DataContractResolver,它序列化了泛型類型的全限定類型名稱,如
Bar`1[List`1[string, mscorlib], mscorlib]
?客戶端的DataContractResolver無法恢復這些類型嗎?
至於第一個問題 - 當然 – EvAlex 2013-11-01 06:15:38