我在C#中编写了一个应用程序,并为它添加了一种API。 使用此API,您可以将插件编写为dll,这是一些接口规则的基础。
我希望能够通过OpenFileDialog打开dll文件并使用其内容。 我的API是一个托管库,所以我只是添加一个引用,但我想在不知道dll文件名的情况下使用dll。命名空间也是另一个库。
如何加载dll并在其中运行代码?
答案 0 :(得分:4)
您所描述的通常被称为插件系统。谷歌搜索“使用C#创建插件系统”之类的东西可能会为您提供大量信息,如下所示:
http://www.codeproject.com/Articles/4691/Plugin-Architecture-using-C
基本理念是:
关于托管/非托管。托管DLL是使用.net托管运行时构建/编码的DLL。这将是以.net语言编码的事物,例如c#。
非托管dll或多或少是用不同语言编码的。
您所称的非托管dll我将其称为动态加载的托管dll。即它仍然是一个托管的dll(用.net语言编写),但在程序运行之前不会加载。
答案 1 :(得分:1)
您可以使用Assembly.LoadFrom Method (String)从dll文件加载托管程序集(另请参阅Best Practices for Assembly Loading)。