2010-06-21 37 views
0

我使用DataContract/DataMembers將我的類序列化爲JSON以實現web服務,並且它一切正常,除了我的一個成員(可以是類a或類b) b類擴展類a。添加KnownType屬性導致未知錯誤

如果我省略了KnownType參數,那麼一個異常被序列化時拋出:

Type 'ClassB' with data contract name 'ClassB:http://schemas.datacontract.org/2004/07/MyApp.App_Code' is not expected.

正如預期的那樣,因爲ClassB的是A類的擴展,所以不知道該解串器。所以,我需要添加一個已知類型的屬性,這是我做的,它包含成員

[KnownType(typeof(ClassB))] 
[DataContract]

編譯沒有問題,但我目前在測試這個頁面似乎走的bizzare父類,它加載很好,但顯然該服務不存在了,因爲我的JS電話告訴我,拋出和錯誤。但我不知道爲什麼在我的類中添加已知類型屬性導致web服務顯然不存在:s

是否與我的設置是ClassA,ClassB:ClassA和所有示例I看到,似乎顯示一個ClassA:ParentClass,ClassB:ParentClass設置。

.NET 4,VWD 2010express

回答

0

是的,它是用類declerations做,你不能把它我嘗試的方式,創建一個基類,以及具有它們的繼承關後他們,它工作得很好