Я пытаюсь выяснить, как вы можете импортировать и использовать DLL во время выполнения внутри приложения С#. С помощью Assembly.LoadFile() мне удалось загрузить мою программу для загрузки dll (эта часть определенно работает, поскольку я могу получить имя класса с ToString()), однако я не могу использовать 'Output' метод из моего консольного приложения. Я компилирую .dll и перемещаю его в свой консольный проект. Есть ли дополнительный шаг между CreateInstance и возможность использования методов?
Это класс в моей DLL:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
и вот приложение, которое я хочу загрузить DLL
namespace ConsoleApplication1
{
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
var DLL = Assembly.LoadFile(@"C:\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\DLL.dll");
foreach(Type type in DLL.GetExportedTypes())
{
var c = Activator.CreateInstance(type);
c.Output(@"Hello");
}
Console.ReadLine();
}
}
}