2013-03-28 2 views
1
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?)Почему Visual Studio не распознает RuntimeBinderException?

Является ли это ограничение VS Express, (2012), или я делаю что-то не так?

+1

'using Microsoft.CSharp.RuntimeBinder;'? –

ответ

1

Убедитесь, что следующие пространства имен и сборка ссылки включены:

Пространство имен: Microsoft.CSharp.RuntimeBinder

А «с помощью Microsoft.CSharp.RuntimeBinder» заявление должно исправить.

Монтаж: Microsoft.CSharp (в Microsoft.CSharp.dll)

  1. правой кнопкой мыши на папку Ссылки на ваш проект.
  2. Выберите Добавить ссылку.
  3. Выберите вкладку .NET (или нажмите кнопку «Обзор», если это не сборка .NET Framework).
  4. Дважды щелкните узел, содержащий пространство имен в сообщении об ошибке.
  5. Нажмите кнопку OK.
+0

Дох. Посмотрел в нескольких местах и ​​никогда не видел упоминания о «Microsoft.CSharp.RuntimeBinder». Подумал бы, что это будет в 'System.Dynamic'. Странный. Спасибо чувак! – TimFoolery

Смежные вопросы