web-dev-qa-db-fra.com

Dynamique dans la fenêtre immédiate car "Microsoft.CSharp.RuntimeBinder.Binder" n'est pas défini ou erreur importée

Si j'utilise dynamic dans la fenêtre immédiate de Visual Studio, un message d'erreur s'affiche.

Le type prédéfini 'Microsoft.CSharp.RuntimeBinder.Binder' n'est pas défini ni importé

Comment puis-je résoudre ce problème?

66
Colonel Panic

Vous devez ajouter une référence à la bibliothèque Microsoft.CSharp dans le projet sélectionné ou dans le projet de démarrage. Et votre projet doit faire référence à .NET Framework 4 ou supérieur.

MSDN sur le contexte immédiat de la fenêtre:

Lors de l'établissement du contexte pour l'évaluation de l'expression au moment de la conception, Visual Studio fait référence au projet actuellement sélectionné dans l'Explorateur de solutions. Si aucun projet n'est sélectionné dans l'Explorateur de solutions, Visual Studio tente d'évaluer la fonction par rapport au projet de démarrage. Si la fonction ne peut pas être évaluée dans le contexte actuel, vous recevrez un message d'erreur.

117
HoberMellow

Deux choses sont importantes. Vérifiez les points suivants:

  1. Que les propriétés de votre projet référencent . NET Framework 4 ou supérieur (si ce n’est pas le cas, changez-le: Faites un clic droit sur le projet, sélectionnez le " Propriétés ... ", puis sélectionnez comme infrastructure cible" .NET Framework 4 "(ou supérieur))
  2. Que vous ayez ajouté l'assembly "Microsoft.CSharp" comme référence (notez que l'étape 1, qui nécessite de recharger le projet, doit être effectuée avant de pouvoir le faire)

Ensuite, vous pouvez utiliser le type dynamic. La référence doit être ajoutée dans le projet sélectionné ou dans le projet de démarrage afin de devenir disponible dans l'étendue de la fenêtre immédiate.


Remarque: Ici J'ai trouvé un article de Nice sur la dynamique en C #, comment ça marche et ce que vous pouvez en faire.

21
Matt
  1. Aller à projet-> ajouter une référence.
  2. sélectionnez les assemblages dans la barre latérale et dans le cadre
  3. vérifier Microsoft.CSharp

Bonne codage!

8
3
Ahmed Galal