Преобразовать конструктор универсального типа в конструктор не универсального типа - PullRequest
2 голосов
/ 25 апреля 2019

Например, у меня есть класс

class TestClass<T>
{
}

У меня есть метод, который получает конструктор этого класса.Я хочу вызвать этот конструктор с каким-то универсальным параметром без повторного вызова MakeGenericType и метода GetConstructor.

static void Main()
{
    var ctor = typeof (TestClass<>).GetConstructors().First();
    Invoke(ctor );
}

static void Invoke(ConstructorInfo ctor)
{
    //ctor.Invoke() - it will not work because TestClass has a generic parameter.
    // I want something like ctor.MakeGenericMethod(typeof(int)).Invoke();
}

Возможно ли это как-то?Спасибо!

1 Ответ

1 голос
/ 25 апреля 2019

Нашли решение:

MethodBase.GetMethodFromHandle(ctor.MethodHandle, typeof(TestClass<int>).TypeHandle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...