在C#中运行时加载DLL
我试图找出如何在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(); } }}
相关分类