Как вызывать методы с параметрами ref / out, используя отражение - PullRequest
10 голосов
/ 21 февраля 2010

Представьте, что у меня есть следующий класс:

class Cow {
    public static bool TryParse(string s, out Cow cow) {
        ...
    }
}

Можно ли назвать TryParse через отражение? Я знаю основы:

var type = typeof(Cow);
var tryParse = type.GetMethod("TryParse");

var toParse = "...";

var result = (bool)tryParse.Invoke(null, /* what are the args? */);

1 Ответ

6 голосов
/ 21 февраля 2010

Вы можете сделать что-то вроде этого:

static void Main(string[] args)
{
    var method = typeof (Cow).GetMethod("TryParse");
    var cow = new Cow();           
    var inputParams = new object[] {"cow string", cow};
    method.Invoke(null, inputParams); 
}

class Cow
{
    public static bool TryParse(string s, out Cow cow) 
    {
        cow = null; 
        Console.WriteLine("TryParse is called!");
        return false; 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...