Как вы сериализуете ScriptObjects в JSON для сохранения в изолированном хранилище Silverlight?

StackOverflow https://stackoverflow.com/questions/143793

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Json.NET

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

Sys.Serialization.JavaScriptSerializer.serialize(obj);
Sys.Serialization.JavaScriptSerializer.deserialize(json);

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top