エラー CS0234:型または名前空間名 'Script' が、名前空間 'System.Web&#39 に存在しません。

私のアプリケーションで JavaScriptSerializer を使用しようとしています。

最初、私は

JavaScriptSerializerが見つかりません。

を追加して解決しました。

using System.Web.Script.Serialization;

しかし、その後、サブキーワード Script に青線が引かれています。

The type or namespace 'Script' does not exist in the namespace 'System.Web' (アセンブリ参照が抜けていませんか?)

ということで、プロジェクトに参照を追加してみました。

C:³ Files (x86)³Reference Assemblies³Microsoft³Framework³V4.0³System.Web.Extensions.dll

That didn't help.私はまだ同じ青い下線と同じエラーを受け取っています。参照には感嘆符の黄色い警告が表示されます。

このスレッド]2で提案された解決策を試しましたが、@user781490が示すように、私の状況には役に立ちませんでした。

この問題を解決する方法を教えてください。

質問へのコメント (7)

私も同じでした。スクリプトに下線を引きました。System.Web.Extensionsの参照を追加してみました。その後、スクリプトに下線が引かれることはなくなりました。どなたかのお役に立てれば幸いです。

解説 (1)

プロジェクトへの参照としてSystem.Web.Extensionsを追加します。

。![ここに画像の説明を入力してください](https://i.stack.imgur.com/QQYEa.png。)

参照用.

解説 (0)
ソリューション

このMSDNフォーラムの投稿で、2つの解決策を提案しているもの】(http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/55a12052-d352-4133-8fa5-52ad49bde64f)を見つけました

最初の解決策(推奨されません)。

.Net Framework 3.5と2.0のフォルダを探します。

3.5 の System.Web.Extensions.dll と 2.0 の System.Web.dll をアプリケーションフォルダにコピーします。

この2つのアセンブリへの参照を追加します。

参照するアセンブリのプロパティを変更し、quot;Copy Local"をtrueに設定します。 そして、すべてのコードが動作することを確認するために、アプリケーションをビルドしてテストします。

第二の解決策(別のクラス/ライブラリを使用する)。

質問を投稿したユーザーは、Uri.EscapeUriStringHow to: Serialize and Deserialize JSON Data によって JavaScriptSerializer の挙動を再現できたと主張しています。

また、Json.Netを使ってみるのもよいでしょう。これは、サードパーティのライブラリで、かなり強力です。

解説 (3)

System.Web.Extensionsへの参照を追加するだけで、喜んで参加できます。

解説 (0)

JsonSerializerは.Net 4.0+では非推奨なので、私はこの問題を解決するためにhttp://www.newtonsoft.com/json を使用しました。

NuGet- > Install-Package Newtonsoft.Jsonをインストールします。

解説 (0)