web-dev-qa-db-ja.com

イミディエイトウィンドウで動的に「Microsoft.CSharp.RuntimeBinder.Binder」が定義されていないかインポートされていないというエラーが発生する

Visual Studioのイミディエイトウィンドウでdynamicを使用すると、エラーが発生します

事前定義タイプ「Microsoft.CSharp.RuntimeBinder.Binder」は定義またはインポートされていません

どうすれば修正できますか?

66
Colonel Panic

選択したプロジェクトまたはスタートアッププロジェクトにMicrosoft.CSharpライブラリへの参照を追加する必要があります。また、プロジェクトは.NET Framework 4以降を参照する必要があります。

即時ウィンドウコンテキストに関するMSDN:

デザイン時の式評価のコンテキストを確立するとき、Visual Studioはソリューションエクスプローラーで現在選択されているプロジェクトを参照します。ソリューションエクスプローラーでプロジェクトが選択されていない場合、Visual Studioはスタートアッププロジェクトに対して関数を評価しようとします。現在のコンテキストで関数を評価できない場合、エラーメッセージが表示されます。

117
HoberMellow

2つのことが重要です。以下を確認してください。

  1. プロジェクトのプロパティが参照していること。NET Framework 4以降(そうでない場合は、変更します。プロジェクトを右クリックして、[プロパティ...]メニューを選択しますアイテム、ターゲットフレームワーク「.NET Framework 4」(またはそれ以上)として選択
  2. "Microsoft.CSharp" Assemblyを参照として追加したこと(プロジェクトを再ロードする必要があるステップ1.は、それを行う前に実行する必要があることに注意してください)

その後、dynamicタイプを使用できます。イミディエイトウィンドウのスコープで使用できるようにするには、選択したプロジェクトまたはスタートアッププロジェクトに参照を追加する必要があります。


注:ここ C#のdynamicsについての素晴らしい記事を見つけました。それでできます。

21
Matt
  1. [プロジェクト]-> [参照の追加]に移動します。
  2. サイドバーとフレームワークからアセンブリを選択します
  3. microsoft.CSharpを確認してください

ハッピーコーディング!

3
Ahmed Galal