Я намагаюся зрозуміти, як ви могли б імпортувати та використовувати .dll під час виконання всередині програми C #. Використовуючи Assembly.LoadFile (), мені вдалося отримати свою програму для завантаження dll (ця частина, безумовно, працює, оскільки я можу отримати назву класу за допомогою ToString ()), однак я не можу використовувати `` Вивід '' з моєї консольної програми. Я компілюю .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();
}
}
}