我用 C# 编写了一个应用程序,并为它添加了一种 API。使用此 API,您可以将插件编写为 dll,它是一些接口规则的基础。
我想让通过 OpenFileDialog 打开 dll 文件并使用其内容成为可能。我的 API 是一个托管库,所以我只是添加了一个引用,但我想在不知道 dll 文件名称的情况下使用 dll。此外,命名空间是另一个每个库。
如何加载 dll 并在其中运行代码?
我用 C# 编写了一个应用程序,并为它添加了一种 API。使用此 API,您可以将插件编写为 dll,它是一些接口规则的基础。
我想让通过 OpenFileDialog 打开 dll 文件并使用其内容成为可能。我的 API 是一个托管库,所以我只是添加了一个引用,但我想在不知道 dll 文件名称的情况下使用 dll。此外,命名空间是另一个每个库。
如何加载 dll 并在其中运行代码?
您所描述的通常称为插件系统。搜索“使用 C# 创建插件系统”之类的内容可能会为您提供大量信息,如下所示:
http://www.codeproject.com/Articles/4691/Plugin-Architecture-using-C
基本思想是:
关于托管/非托管。托管 DLL 是使用 .net 托管运行时构建/编码的。这将是用 .net 语言(如c# )编码的东西。
非托管 dll 或多或少是用不同语言编码的任何东西。
您所说的非托管 dll 我将其称为动态加载的托管 dll。即它仍然是一个托管 dll(以 .net 语言编码),但在程序已经运行之前不会加载。
您可以使用Assembly.LoadFrom 方法(字符串)从 dll 文件加载托管程序集(另请参见程序集加载的最佳实践)。