为什么Visual Studio无法识别RuntimeBinderException?

时间:2013-03-28 06:46:38

标签: c# exception-handling compiler-errors

using System.Dynamic;

...

public partial class Form1 : Form
    {
        ...
        private void button1_Click(object sender, EventArgs e)
        {
            dynamic CBT = new CustomBindingTest();
            CBT.DynamicMethodExample();
        }
    }

    public class CustomBindingTest : DynamicObject
    {
        public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
        {
            MessageBox.Show(binder.Name);
            try { return base.TryInvokeMember(binder, args, out result); }
            catch (RuntimeBinderException e) { result = null;  return false; }
        }
    }

我收到以下错误:The type or namespace name 'RuntimeBinderException' could not be found (are you missing a using directive or an assembly reference?)

这是VS Express(2012)的限制,还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

确保包含以下命名空间和程序集引用:

命名空间:Microsoft.CSharp.RuntimeBinder

“使用Microsoft.CSharp.RuntimeBinder”语句应修复此问题。

程序集:Microsoft.CSharp(在Microsoft.CSharp.dll中)

  1. 右键单击项目的References文件夹。
  2. 选择添加参考。
  3. 选择.NET选项卡(如果它不是.NET Framework程序集,则选择“浏览”按钮)。
  4. 在错误消息中双击包含命名空间的程序集。
  5. 按OK按钮。