Как выполнить сериализацию объектов ScriptObjects в JSON для сохранения в изолированном хранилище Silverlight? - PullRequest
0 голосов
/ 27 сентября 2008

Согласно этой статье Silverlight 2 Beta 2 поддерживает объект DataContractJsonSerializer. Но, когда я пытаюсь использовать его, VS говорит

"Тип 'DataContractJsonSerializer' не определен".

У меня есть метод, помеченный как ScriptableMember, который вызывается из JavaScript и передается как объект. Внутри этого метода мне нужно сериализовать объект в строку (предпочтительно JSON), а затем сохранить его в изолированном хранилище.

Действительно ли Silverlight 2 Beta 2 поддерживает DataContractJsonSerializer? Или кто-нибудь порекомендует другой способ сохранения созданного JavaScript ScriptObject в изолированном хранилище?

Ответы [ 4 ]

3 голосов
/ 28 сентября 2008

На самом деле ответ таков: DataContractJsonSerializer является частью Silverlight 2 Beta 2, но для его использования необходимо добавить ссылку на System.ServiceModel.Web в проект Silverlight.

Я не осознавал, что вам все еще нужно добавить ссылки на dll в Silverlight. Я думал, что он автоматически включает все аналогично тому, как это делает ASP.NET.

2 голосов
/ 29 сентября 2008

Существует версия Silverlight Json.NET, которая сериализует ваши объекты в JSON. Он не требует атрибутов [DataContract] и [DataMember] для всех ваших объектов.

Json.NET

1 голос
/ 27 сентября 2008

Пока что единственное решение, которое я нашел, - это использовать ASP.NET AJAX JavaScriptSerializer для выполнения сериализации / десериализации JSON в JavaScript, а затем просто использовать Silverlight для сохранения / получения полученной строки.

Sys.Serialization.JavaScriptSerializer.serialize(obj);
Sys.Serialization.JavaScriptSerializer.deserialize(json);
0 голосов
/ 28 сентября 2008

Я бы сказал, что ваш собственный ответ будет лучшим подходом. JavaScript работает очень медленно, поэтому лучше оставить часть сериализации в ASP.NET.

...