.NET 4.x Передать тип в качестве параметра - C#
Формулировка задачи:
Доброго времени суток уважаемые!
Заинтересовала тема плагинов, и в соседней теме нашел вот такой код:
Всё отлично работает, но тут у меня возник другой вопрос... Как создать универсальную функцию для загрузки плагинов, которая в качестве параметра принимала бы тип (интерфейс) и загружала бы плагин соотв. типа?
Например так:
Как-то примерно так... Код приведён исключительно в качестве примера, условен и не работает.
Листинг программы
- var asm = Assembly.LoadFile(@"pathToDll");
- var plugin = Activator.CreateInstance(asm.GetTypes().First(t => t.GetInterfaces().Contains(typeof(IPlugin)))) as IPlugin;
- Console.WriteLine(plugin.Func(1, 2));
Листинг программы
- public void Load(var TYPE) {
- var asm = Assembly.LoadFile(@"pathToDll");
- var plugin = Activator.CreateInstance(asm.GetTypes().First(t => t.GetInterfaces().Contains(typeof(TYPE)))) as TYPE;
- Console.WriteLine(plugin.Func(1, 2));
- }
- Load(IPlugin);
Решение задачи: «.NET 4.x Передать тип в качестве параметра»
textual
Листинг программы
- public void Load<TYPE>() {
- var asm = Assembly.LoadFile(@"pathToDll");
- var plugin = Activator.CreateInstance(asm.GetTypes().First(t => t.GetInterfaces().Contains(typeof(TYPE)))) as TYPE;
- Console.WriteLine(plugin.Func(1, 2));
- }
- Load<IPlugin>();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д