2010-10-05 4 views
2

Я пытаюсь разместить службу WCF, которая отвечает на входящие запросы, предоставляя выходной поток json. У меня есть следующий типаИспользование 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»: -

На сервере возникла ошибка при обработке запроса. Сообщение об исключении - это «Тип» 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

+0

: D большое спасибо Робу за то, что вы помогли вам перестать смотреть на экран весь день lol –

Смежные вопросы