ฉันพยายามหาวิธีที่คุณจะนำเข้าและใช้. 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();
}
}
}