立即窗口中的动态导致'Microsoft.CSharp.RuntimeBinder.Binder'未定义或导入错误

Col*_*nic 67 .net c# dynamic immediate-window visual-studio

如果我dynamic在Visual Studio的即时窗口中使用,我会收到错误

未定义或导入预定义类型"Microsoft.CSharp.RuntimeBinder.Binder"

我该如何解决这个问题?

Hob*_*low 118

您应该在所选项目或启动项目中添加对Microsoft.CSharp库的引用.您的项目应该引用.NET Framework 4或更高版本.

关于即时窗口上下文的MSDN:

在为设计时表达式评估建立上下文时,Visual Studio将在Solution Explorer中引用当前选定的项目.如果在解决方案资源管理器中未选择任何项目,Visual Studio将尝试针对启动项目评估该功能.如果无法在当前上下文中评估该函数,您将收到一条错误消息.

  • 在当前选定的项目中引用它似乎不起作用.我对System.Data有同样的问题,它被引用,但是在即时窗口中找不到.可能只在调试会话期间有效?我正在使用它来调用静态方法而不启动调试会话. (5认同)

Mat*_*att 21

有两件事很重要.检查以下内容:

  1. 您的项目属性引用.NET Framework 4或更高版本(如果不是这样,请更改它:右键单击项目,选择"Properties ..."菜单项,然后选择作为目标框架".NET Framework 4 " (或更高))
  2. 您已添加"Microsoft.CSharp"程序集作为参考(请注意,步骤1,需要重新加载项目,必须先完成,然后才能执行此操作)

之后您可以使用该dynamic类型.需要在所选项目或启动项目中添加引用,以便在即时窗口的范围内可用.


注意: 在这里,我发现了一篇关于C#中的动态,它如何工作以及你可以用它做什么的好文章.


Vic*_*gei 8

  1. 转到项目 - >添加引用.
  2. 从侧栏和框架中选择装配
  3. 检查Microsoft.CSharp

快乐的编码!

  • 别忘了点击确定 (3认同)