ScriptObjectsをJSONにシリアル化して、Silverlight分離ストレージに保存するにはどうすればよいですか?

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

質問

この記事によると、 Silverlight 2 Beta 2 は、 DataContractJsonSerializer オブジェクトをサポートします。しかし、私がそれを使用しようとすると、VSは言います

  

"タイプ 'DataContractJsonSerializer'は定義されていません"。

JavaScriptから呼び出され、オブジェクトを渡されるScriptableMemberとしてマークされたメソッドがあります。このメソッド内で、オブジェクトを文字列(できればJSON)にシリアル化し、それを分離ストレージに保存する必要があります。

Silverlight 2 Beta 2はDataContractJsonSerializerを本当にサポートしていますか?または、JavaScriptで作成されたScriptObjectを分離ストレージに保存する別の方法をお勧めしますか?

役に立ちましたか?

解決

実際の答えは、DataContractJsonSerializerはSilverlight 2 Beta 2の一部ですが、それを使用するには、SilverlightプロジェクトにSystem.ServiceModel.Webへの参照を追加する必要があります。

Silverlightでdll参照を追加する必要があることに気づきませんでした。 ASP.NETと同じように、すべてが自動的に含まれると思いました。

他のヒント

オブジェクトをJSONにシリアル化するJson.NETのSilverlightバージョンがあります。オブジェクト全体に[DataContract]属性と[DataMember]属性は必要ありません。

Json.NET

今のところ、私が見つけたこれに対する唯一の解決策は、ASP.NET AJAX JavaScriptSerializerを使用してJavaScriptでJSONシリアル化/逆シリアル化を行い、Silverlightを使用して結果の文字列を格納/取得することです。

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

私はあなた自身の答えが最良のアプローチだと思います。 JavaScriptはそのようなことを行うのが非常に遅いため、シリアル化部分はASP.NETに任せるのが最善です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top