Bir C # uygulaması içinde çalışma zamanında bir .dll dosyasını içe aktarmayı ve kullanmayı nasıl yapabileceğinizi anlamaya çalışıyorum. Assembly.LoadFile () kullanarak programımı dll'yi yüklemeyi başardım (ToString () ile sınıfın adını alabildiğim için bu kısım kesinlikle çalışıyor), ancak 'Çıktı'yı kullanamıyorum konsol uygulamamın içinden yöntem. .Dll dosyasını derliyorum ve ardından konsolumun projesine taşıyorum. CreateInstance ile yöntemleri kullanabilmek arasında fazladan bir adım var mı?
Bu benim DLL dosyamdaki sınıf:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
ve işte DLL'yi yüklemek istediğim uygulama
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();
}
}
}