从文件夹、C#windows窗体项目加载DLL

从文件夹、C#windows窗体项目加载DLL,c#,winforms,dll,C#,Winforms,Dll,我在另一个项目中看到了这一点,该项目也使用了windows窗体,我只是好奇如何做到这一点。 基本上就是我要问的,例如:我有两个windows窗体项目,目前这两个项目都是独立的,但我想将它们合并到一起。其中一个重要方面是如何将第二个项目加载到第一个项目中。因此,我将我的第二个项目构建为.dll文件。 然后我想把这个.dll文件放到项目中的一个文件夹中,然后可以搜索文件夹中的任何.dll文件并加载它们 因此,我知道我可以通过将第二个项目中的.dll文件添加到第一个项目的引用中来实现这一点,但具体来说

我在另一个项目中看到了这一点,该项目也使用了windows窗体,我只是好奇如何做到这一点。 基本上就是我要问的,例如:我有两个windows窗体项目,目前这两个项目都是独立的,但我想将它们合并到一起。其中一个重要方面是如何将第二个项目加载到第一个项目中。因此,我将我的第二个项目构建为.dll文件。 然后我想把这个.dll文件放到项目中的一个文件夹中,然后可以搜索文件夹中的任何.dll文件并加载它们

因此,我知道我可以通过将第二个项目中的.dll文件添加到第一个项目的引用中来实现这一点,但具体来说,我想知道如果没有这个,它是否可以实现?
因此,在我的第一个项目中,我可以说:;“搜索“DirectoryName”,如果该文件夹中有任何.dll文件,请加载它们,并将它们添加到项目中用户(即我)可以看到并希望使用的列表中。”

您可能有兴趣使用


或者,您可以使用Assembly.LoadFrom(),如。

您要查找的内容可以通过使用名为

反射允许您将程序集动态加载到应用程序中

您需要的类称为Assembly,它有几个用于加载程序集的有用方法:

LoadFile、LoadFrom等

下面是在给定路径加载程序集的代码示例:

加载程序集并引用程序集对象后,可以创建在其中定义的对象、调用其方法等


更多资源可以在这里找到:

这里有一些有用的链接

问:那么 外部博客

基本上,您需要加载库、枚举类型并使用
Activator.CreateInstance()
创建新对象。 为需要交互的类提供接口也会对您有所帮助

谢谢您的回答:),非常有用!
string path = @"D:\Folder\MyDll.dll";
Assembly assembly = Assembly.LoadFrom(path);