web-dev-qa-db-ja.com

C#でSystem.Runtime.Serialization.Jsonを参照できないのはなぜですか

APIを使用して、interwebzから情報を取得します。 APIは、Json形式でデータを返します。

  1. Microsoft Visual Studio C#2010 Expressの追加を実行しています。
  2. .NET Framework 4 Client Profileを「ターゲットフレームワーク」として設定しているように見えますが、これが何を意味するのか正確にはわかりません。
  3. これはWindowsフォームアプリケーションです...

適切なusingステートメントがないと実際には開始できないため、表示するコードはあまりありません...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Net;
using System.Runtime.Serialization.Json;

私はこのエラーを受け取ります:

型または名前空間名「Json」は、名前空間「System.Runtime.Serialization」に存在しません(アセンブリ参照がありませんか?)

DLLファイルまたは何かがありませんか?ソリューションを無益に検索した時間に基づいて、.NET 4.xxには既にJson形式の文字列を解析するために必要なツールがあるはずです?

28
Methodician

System.Runtime.Serialization.Json名前空間は、.netフレームワークに応じて2つの異なるDLLにあります。

.NET 3.5ではSystem.ServiceModel.Web.dllにあります

.NET 4.0以降ではSystem.Runtime.Serialization.dllにあります。

プロジェクトの参照として正しいDLL)を追加したことを確認し、コードファイルの先頭にusing System.Runtime.Serialization.Json;を追加します。

EDIT-JSON.NETの使用を検討してください

.NET Frameworkが独自のJSONシリアル化および逆シリアル化名前空間(DataContractJsonSerializerおよびJavaScriptSerializer)を提供している場合でも、JSON.NETを使用する方が良いかどうかを調査する必要があります。

JSON.NETは使いやすく、パフォーマンスが向上し、はるかに多くの機能を備えています。 http://www.newtonsoft.com/json/help/html/JsonNetVsDotNetSerializers.htm

54
CathalMF

参照からSystem.Runtime.Serialization dllをインポートする必要があります

11
Eanthmue

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

ソリューションエクスプローラーで参照を右クリックし、参照を追加します。 DLLのリストが表示されるので、プロジェクトに追加するために必要なDLLの横にあるチェックボックスをオンにする必要があります。これが完了したら、usingステートメントを正常に追加できます。

お役に立てば幸いです!

8
eddie_cat

JSONをC#からシリアライズおよびデシリアライズする一般的なプロセスは次のとおりです。

System.Runtime.Serializationライブラリへの参照を追加します。

System.Runtime.SerializationおよびSystem.Runtime.Serialization.Jsonのusingディレクティブを追加します。

4
Jawier

Target framework.NET Framework 4 Client Profileから.NET Framework 4に変更してください

1
Wasif Hossain