web-dev-qa-db-fra.com

Pourquoi ne puis-je pas référencer System.Runtime.Serialization.Json en C #

Je veux utiliser une API pour obtenir des informations de l'interwebz. L'API renvoie des données au format Json.

  1. J'exécute l'ajout de Microsoft Visual Studio C # 2010 Express.
  2. Il semble que le profil client du .NET Framework 4 soit défini comme mon "cadre cible", mais je ne suis vraiment pas sûr de ce que cela signifie.
  3. Ceci est une application Windows Forms ...

Pas beaucoup de code à afficher car je ne peux pas vraiment commencer sans l'instruction using appropriée ...

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

Je reçois cette erreur:

Le nom de type ou d'espace de noms 'Json' n'existe pas dans l'espace de noms 'System.Runtime.Serialization' (vous manque une référence d'assembly?)

Suis-je manquant d'un fichier DLL ou quelque chose? Sur la base de mes heures de recherche infructueuse de solutions, je comprends que le .NET 4.xx devrait déjà avoir les outils nécessaires pour analyser une chaîne au format Json ?

28
Methodician

L'espace de noms System.Runtime.Serialization.Json se trouve dans deux DLL différentes en fonction de votre infrastructure .net.

Dans .NET 3.5, il se trouve dans System.ServiceModel.Web.dll

Dans .NET 4.0 et supérieur, il se trouve dans System.Runtime.Serialization.dll.

Assurez-vous d'avoir ajouté la bonne DLL comme référence dans votre projet et ajoutez using System.Runtime.Serialization.Json; en haut de votre fichier de code.

EDIT - Pensez à utiliser JSON.NET

Même si le .NET Framework fournit ses propres espaces de noms de sérialisation et de désérialisation JSON (DataContractJsonSerializer et JavaScriptSerializer), vous devez vérifier si vous préférez utiliser JSON.NET.

JSON.NET est plus facile à utiliser, de meilleures performances et a beaucoup plus de fonctionnalités. http://www.newtonsoft.com/json/help/html/JsonNetVsDotNetSerializers.htm

54
CathalMF

vous devez importer la DLL System.Runtime.Serialization à partir de la référence

11
Eanthmue

Vous devez ajouter une référence à votre projet.

Dans l'Explorateur de solutions, cliquez avec le bouton droit sur références puis ajoutez une référence. Vous verrez une liste de DLL et vous devez cocher la case à côté de celle dont vous avez besoin pour qu'elle soit ajoutée au projet. Après cela, vous pouvez ajouter avec succès l'instruction using.

J'espère que ça t'as aidé!

8
eddie_cat

Le processus général de sérialisation et de désérialisation de JSON à partir de C # est le suivant:

Ajoutez une référence à la bibliothèque System.Runtime.Serialization.

Ajoutez des directives using pour System.Runtime.Serialization et System.Runtime.Serialization.Json.

4
Jawier

Veuillez modifier votre Target framework de .NET Framework 4 Client Profile à .NET Framework 4

1
Wasif Hossain