web-dev-qa-db-ja.com

.Net 4.0にJavaScriptSerializerが見つかりません

JavaScriptSerializer オブジェクトも、Visual Studio 2010内のSystem.Web.Script.Serialization名前空間も見つからないようです。使用するものをJSONにシリアル化する必要がありますか。

そして、はい、私はすでにプロジェクト内にSystem.Web.Extensions(System.Web.Extensions.dll内)を含めました。私がショックを受けたのはそのためですか?

  • 3.5でSystem.Web.Extensions廃止された とマークされていたことを私は知っています
281
Prisoner ZERO

.net 4バージョンのSystem.Web.Extensionsが含まれているかどうかを確認してください - 3.5バージョンもありますが、うまく機能するとは思いません。

これらのステップは私のために働きます:

  1. 新しいコンソールアプリケーションを作成する
  2. ターゲットをClient Profileではなく.net 4に変更します。
  3. System.Web.Extensions(4.0)への参照を追加
  4. Program.csのJavaScriptSerializerにアクセスできるようになりました:-)
493
Steffen
  1. Referencesを右クリックしてAdd Referenceを実行し、次にAssemblies->FrameworkからSystem.Web.Extensionsを選択します。
  2. これで、クラスファイルに次の行を追加できるはずです。
    using System.Web.Script.Serialization;
111
Scott Johnson

Googleでの最初の検索結果から:

http://msdn.Microsoft.com/ja-jp/library/system.web.script.serialization.javascriptserializer.aspx

JavaScriptSerializerクラス

AJAX対応アプリケーションにシリアル化および逆シリアル化機能を提供します。

継承階層

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

名前空間:System.Web.Script.Serialization

アセンブリ:System.Web.Extensions(System.Web.Extensions.dll内)

そのため、参照としてSystem.Web.Extensions.dllを含めてください。

41
Paul

私はVisual Studio 2015を使用していますが、ついにこの記事に出くわしました。

使用するためにはい

JavaScriptSerializer json = new JavaScriptSerializer();

参照を右クリックして、アセンブリ - >フレームワークを選択してください。

System.Web.Extensions

それからあなたの参照に加えなさい

using System.Web.Script.Serialization;
19
Tom Stickel

.NET 4.0(full)をターゲットにして、JavaScriptSerializerをアプリケーションで使用可能にする方法です。

using System.Web.Script.Serialization;

これであなたは新しいJavaScriptSerializerオブジェクトを作成することができるはずです!

15
Alex Hopkins
using System.Web.Script.Serialization; 

アセンブリにあります。System.Web.Extensions(System.Web.Extensions.dll)

12
Ema.H

.NET 4フレームワークと.NET 4クライアントプロファイルのどちらをターゲットにしていますか?

後者をターゲットにしているのであれば、そのクラスは見つかりません。あなたはまた、おそらくエクステンションdllに、参照を見逃すかもしれません。

10

上記の回答に従っているがまだ問題があるように思われる人のために(例えば、ポスターの質問の最初のコメントを見てください):

あなたはおそらく多くのプロジェクトとの解決策で働いています。作業中のプロジェクトは他のプロジェクトを参照しているように見えますが、実際には他のプロジェクトのいずれかからファイルを変更しています。例えば:

  • プロジェクトAがSystem.Web.Extensionsを参照
  • プロジェクトAがプロジェクトBを参照

ただし、System.Web.Script.Serializationを使用するように変更しているファイルがプロジェクトBにある場合は、プロジェクトBにもSystem.Web.Extensionへの参照を追加する必要があります。

9
jltrem

System.Web.Extensionsへの参照を含めましたか?最初のリンクをクリックすると、どのアセンブリが入っているのかがわかります。

8
Davy8

プロジェクトへの参照を追加する必要があります。

アセンブリでは、System.Web.Extensions Addがあります。

それが終わったら:

    using System.Web;
    using System.Web.Script;
    using System.Web.Script.Serialization;

それは私のために働いた。

5
riahc3

Newtonsoft.Jsonという別のオプションを使用することもできます。NuGetパッケージマネージャからインストールすることもできます。

コマンド>> Nuget Package Manager >> Package Managerコンソールによるコマンド発行

Install-Package Newtonsoft.Json

または

ツール>> Nuget Package Manager >>ソリューション用のNuGetパッケージの管理のGUIを使用して...

enter image description here

ご存じのとおり、私はVisual Studio 2013を使用していて、プロジェクトプロパティを使用して3.5フレームワークに切り替えてから4.5に戻すまで、同じ問題を抱えていました。これは何らかの理由で.dllを正しく登録し、私はSystem.Web.Extensionsを使うことができました。

enter image description here

enter image description here

3
Milan