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?)

これは VS Express (2012) の制限ですか、それとも何か間違っていますか?

4

1 に答える 1

1

次の名前空間とアセンブリ参照が含まれていることを確認してください。

名前空間: Microsoft.CSharp.RuntimeBinder

「Microsoft.CSharp.RuntimeBinder を使用する」ステートメントはそれを修正する必要があります。

アセンブリ: Microsoft.CSharp (Microsoft.CSharp.dll 内)

  1. プロジェクトの References フォルダーを右クリックします。
  2. [参照の追加] を選択します。
  3. .NET タブを選択します (または、.NET Framework アセンブリでない場合は [参照] ボタンを選択します)。
  4. エラー メッセージ内の名前空間を含むアセンブリをダブルクリックします。
  5. OKボタンを押します。
于 2013-03-28T06:55:08.797 に答える