我试图弄清楚如何在 C# 应用程序中的运行时导入和使用 .dll。使用 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();
}
}
}