我已经看到这是在另一个项目中完成的,该项目也使用了Windows窗体,我只是对如何完成它感到好奇。 基本上我要求的例子是:我有两个Windows窗体项目,目前两个都是分开但我想将它们合并到彼此中。这方面的一个重要方面是如何将第二个项目加载到第一个项目中。所以我把我的借调项目建成了.dll文件。 然后我想将.dll文件放在项目内的一个文件夹中,然后能够搜索文件夹中的任何.dll并加载它们。
所以我知道我可以通过将我的第二个项目中的.dll文件添加到第一个项目的引用中来实现这一点,但我特别想知道是否可以在没有这个的情况下完成它? 所以在我的第一个项目中,我可以说; “搜索”DirectoryName“,如果该文件夹中有任何.dll文件,请加载它们,并将它们添加到用户即我可以看到并希望使用的项目列表中。”
答案 0 :(得分:4)
使用名为Reflection
的机制可以实现您的目标Reflection允许您将程序集动态加载到应用程序中,等等。
您需要的类名为 Assembly ,它有几种有用的加载程序集的方法:
LoadFile,LoadFrom等等。
以下是在给定的路径上加载程序集的代码示例:
string path = @"D:\Folder\MyDll.dll";
Assembly assembly = Assembly.LoadFrom(path);
加载程序集并引用Assembly对象后,可以创建在其中定义的对象,调用其方法等。
可在此处找到更多资源:Dynamically loading and using Types
答案 1 :(得分:1)
您可能有兴趣使用Managed Entity Framework来实现这一目标。
或者,您可以将Assembly.LoadFrom()用作described here。
答案 2 :(得分:0)