Tôi đang cố gắng tìm ra cách bạn có thể nhập và sử dụng .dll trong thời gian chạy bên trong ứng dụng C #. Sử dụng Assembly.LoadFile () Tôi đã quản lý để chương trình của mình tải dll (phần này chắc chắn đang hoạt động vì tôi có thể lấy tên của lớp bằng ToString ()), tuy nhiên tôi không thể sử dụng 'Đầu ra' từ bên trong ứng dụng bảng điều khiển của tôi. Tôi đang biên dịch .dll sau đó chuyển nó vào dự án bảng điều khiển của tôi. Có một bước bổ sung giữa CreateInstance và sau đó có thể sử dụng các phương thức không?
Đây là lớp trong DLL của tôi:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
và đây là ứng dụng tôi muốn tải 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();
}
}
}