2010-10-05 46 views
2

我想通過提供一個json輸出流來承載一個響應傳入請求的WCF服務。我有以下類型使用DataContractJsonSerializer

[DataContract] 
[KnownType(typeof(List<HubCommon>))] 
[KnownType(typeof(Music))] 
[KnownType(typeof(AppsAndPlugins))] 
[KnownType(typeof(Notifications))] 
[KnownType(typeof(Scenes))] 
[KnownType(typeof(Skins))] 
[KnownType(typeof(Ringtones))] 
[KnownType(typeof(Alarms))] 
[KnownType(typeof(Widgets))] 
[KnownType(typeof(Wallpapers))] 
[KnownType(typeof(Soundsets))] 
public class HubCommon{} 

在我* .svc.cs文件我下面

List<HubCommon> hubContent = _ldapFacade.GetResults(query); 
     MemoryStream stream = new MemoryStream(); 
     DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(HubCommon));   
     serializer.WriteObject(stream,hubContent); 

所以基本上我試圖序列化列表到JSON,但我得到的下面的錯誤「WriteObject」執行: -

服務器在處理請求時遇到錯誤。異常消息是'Type'System.Collections.Generic.List`1 [[HubContentCore.Domain.HubCommon,HubContentCore,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]',數據協定名稱爲'ArrayOfHubCommon:http ://schemas.datacontract.org/2004/07/HubContentCore.Domain'不是預期的。將任何未知的靜態類型添加到已知類型列表中 - 例如,使用KnownTypeAttribute屬性或將它們添加到傳遞給DataContractSerializer的已知類型列表中。

我在這裏錯過了什麼?

在此先感謝。

回答

1

類型的DataContractJsonSerializer是HubCommon,但你寫List<HubCommon>類型的對象,並HubCommon不添加到KnownTypAttribute

+0

謝謝! Wayyy太多的屏幕盯着一天...完全錯過了。真的很感激它。 – Cranialsurge 2010-10-06 23:52:29

+0

:D非常感謝Rob幫助你停止整天盯着屏幕大聲笑 – 2011-07-21 03:30:30

相關問題