динамический в C # 4.0 - PullRequest
0 голосов
/ 13 июля 2010

В 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 Ответ

3 голосов
/ 10 августа 2010

Динамический не является решением.Вы должны использовать отражение.

static void Main(string[] args)
{
    string target = "MethodToCall";
    var d = new test();
    typeof(test).InvokeMember(target, BindingFlags.InvokeMethod, null, d, null);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...