C#4.0中的动态

时间:2010-07-13 01:08:09

标签: c#-4.0

在PowerShell中,我可以将变量设置为字符串,然后在哈希表查找中使用它:

$h = @{a=1}
$p = "a"

$h.$p

如何使用方法调用在C#4.0中完成此操作?以下操作失败,因为目标未解析为'MethodToCall'。

class Program
{
    static void Main(string[] args)
    {
        string target = "MethodToCall";
        dynamic d = new test();
        d.target();
    }
}

class test
{
    public void MethodToCall()
    {
    }
}

1 个答案:

答案 0 :(得分:3)

动态不是解决方案。您可能需要使用反射。

static void Main(string[] args)
{
    string target = "MethodToCall";
    var d = new test();
    typeof(test).InvokeMember(target, BindingFlags.InvokeMethod, null, d, null);
}