.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>();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д