Отправить тип T в метод с экземпляром объекта - PullRequest
0 голосов
/ 04 апреля 2020

Извините, если я не могу объяснить свой вопрос, но мне трудно.

Я пытаюсь отправить класс T в свой метод, но у меня нет прямого доступа к моему объект, поэтому я подумал использовать имя для создания экземпляра с отражениями, но я не знаю, как отправить класс T в мой метод.

Это определение моего метода

void RedirectToActivity<T>(bool closePrevious); 

И у меня есть этот код для вызова

var activity = Activator.CreateInstance("myassembly", "MainActivity");
RedirectToActivity<????>(true);

В первой строке я создаю экземпляр моего класса MainActivity.

Во второй строке мне нужно отправьте MainActivity класс и получите его как T объект в RedirectToActivity, но я не знаю, как этого добиться.

Мне нужно что-то подобное ...

RedirectToActivity<MainActivity>(true);

Но у меня нет прямого доступа к классу MainActivity.

Я пробовал это

RedirectToActivity<activity.GetType()>(true);
RedirectToActivity<typeof(activity)>(true);

Но не работает.

1 Ответ

1 голос
/ 04 апреля 2020

Можете ли вы просто добавить обобщенный аргумент параметра c в свой метод RedirectToActivity?

void RedirectToActivity<T>(T activity, bool closePrevious)
{
    // Do Stuff here
}

И затем передать свой экземпляр действия в:

var activity = Activator.CreateInstance<MainActivity>();
RedirectToActivity(activity, true);
...