代码之家  ›  专栏  ›  技术社区  ›  Chris Pietschmann

如何将ScriptObjects序列化为JSON以保存在Silverlight独立存储中?

  •  0
  • Chris Pietschmann  · 技术社区  · 18 年前

    本文认为, Silverlight 2 Beta 2 支持 DataContractJsonSerializer 对象但是,当我尝试使用它时,VS说

    “未定义类型“DataContractJsonSerializer”。

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

    4 回复  |  直到 10 年前
        1
  •  3
  •   Chris Pietschmann    18 年前

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

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

        2
  •  3
  •   James Newton-King dbc    18 年前

    有一个Silverlight版本的Json.NET,它将把对象序列化为Json。它不需要在所有对象上都使用[DataContract]和[DataMember]属性。

    Json.NET

        3
  •  1
  •   Chris Pietschmann    18 年前

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

    Sys.Serialization.JavaScriptSerializer.serialize(obj);
    Sys.Serialization.JavaScriptSerializer.deserialize(json);
    
        4
  •  0
  •   cllpse    18 年前

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