Я тут решил в одном своем рабочем проекте реализовать плагины.
Дальше небольшой пример кода, как это делать на C#
Для этого нам понадобится новый проект winForms c одной единственной формочкой на которой есть одна кнопка и OpenFileDialog
private void Button1Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() != DialogResult.OK) return;
//Загружаем стороннюю библиотеку
var assembly = Assembly.LoadFrom(openFileDialog1.FileName);
//Получаем перечень атрибутов
object[] attributes = assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
//Получаем перечень доступных классов
object[] types = assembly.GetExportedTypes();
//Загружаем первый попавшийся клас, вообще тут должна быть маленькая магия
if (types.Length > 0)
{
var instanceOfMyType = Activator.CreateInstance((System.Type)types[0],
new object[]
{
"Тут находится параметр конструктора"
});
foreach (object attribute in attributes)
{
Console.WriteLine("Attribute = {0}", ((AssemblyTitleAttribute)attribute).Title);
}
foreach (object type in types)
{
Console.WriteLine("Type = {0}", ((System.Type)type).FullName);
}
Console.WriteLine("Instance of {0}",instanceOfMyType.GetType().FullName);
}
Comments are closed.