web-dev-qa-db-ja.com

エラーCS0234:タイプまたはネームスペース名「スクリプト」はネームスペース「System.Web」に存在しません

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

最初に受け取った

JavaScriptSerializerが見つかりません

そして、私はそれを追加して解決しました:

using System.Web.Script.Serialization;

ただし、サブキーワードScriptは青い線で下線が引かれます。

型または名前空間「スクリプト」が名前空間「System.Web」に存在しません(アセンブリ参照がありませんか?)

そこで、プロジェクトに次の参照を追加しました。

C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Web.Extensions.dll

それは助けにはなりませんでした。同じエラーで同じ青い下線が表示されます。参照には感嘆符の黄色の警告が付いています:

enter image description here

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

これを解決する方法はありますか?

36
scatmoi

問題に対する2つの解決策を提案するこのMSDNフォーラムの投稿 が見つかりました。

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

.Net Framework 3.5および2.0フォルダーを見つける

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

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

参照アセンブリプロパティを変更し、「ローカルコピー」をtrueに設定し、ビルドしてアプリケーションをテストし、すべてのコードが機能することを確認します。

2番目の解決策(別のクラス/ライブラリを使用):

質問を投稿したユーザーが Uri.EscapeUriString および 方法:JSONデータのシリアライズおよびデシリアライズ は、JavaScriptSerializerの動作を再現するのに役立ちました。

Json.Net を使用することもできます。サードパーティのライブラリであり、非常に強力です。

12
Tejas Sharma

私も同じでした。スクリプトに下線が引かれています。 System.Web.Extensionsへの参照を追加しました。その後、スクリプトには下線が引かれなくなりました。これが誰かを助けることを願っています。

36
Costa Zachariou

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

enter image description here

参照用.

17
Siddhartha

System.Web.Extensionsへの参照を追加するだけで、準備完了です。

7
Usman

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

NuGet->インストールパッケージNewtonsoft.Json

1
Enkode