0

根据这篇文章Silverlight 2 Beta 2支持该DataContractJsonSerializer对象。但是,当我尝试使用它时,VS 说

“未定义类型‘DataContractJsonSerializer’”。

我有一个标记为 ScriptableMember 的方法,它从 JavaScript 调用并传递一个对象。在此方法中,我需要将对象序列化为字符串(最好是 JSON),然后将其保存在独立存储中。

Silverlight 2 Beta 2 真的支持 DataContractJsonSerializer 吗?或者有人会推荐另一种将 JavaScript 创建的 ScriptObject 保存在独立存储中的方法吗?

4

4 回答 4

3

实际上答案是,DataContractJsonSerializer 是 Silverlight 2 Beta 2 的一部分,但您需要在 Silverlight 项目中添加对 System.ServiceModel.Web 的引用才能使用它。

我没有意识到您仍然需要在 Silverlight 中添加 dll 引用。我认为它以与 ASP.NET 类似的方式自动包含所有内容。

于 2008-09-28T04:09:48.553 回答
3

有一个 Silverlight 版本的 Json.NET 可以将您的对象序列化为 JSON。它不需要所有对象的 [DataContract] 和 [DataMember] 属性。

json.net

于 2008-09-29T07:52:48.367 回答
1

目前,我发现的唯一解决方案是使用 ASP.NET AJAX JavaScriptSerializer 在 JavaScript 中进行 JSON 序列化/反序列化,然后使用 Silverlight 存储/检索结果字符串。

Sys.Serialization.JavaScriptSerializer.serialize(obj);
Sys.Serialization.JavaScriptSerializer.deserialize(json);
于 2008-09-27T15:34:22.533 回答
0

我会说你自己的答案将是最好的方法。JavaScript 在做这样的事情上非常慢,所以最好将序列化部分留给 ASP.NET。

于 2008-09-27T23:11:25.400 回答