2012-01-18 64 views
2

嗯,我已经看到这是另一个项目,这也是使用Windows窗体,我只是好奇它可以如何完成。 基本上,我要求例如:我有2个窗口项目,目前有两个单独的,但我想将他们纳入对方。其中一个重要方面就是如何将第二个项目加载到第一个项目中。所以我把我的辅助项目建立为一个.dll文件。 然后我想将该.dll文件放入项目中的文件夹,然后搜索文件夹中的任何.dll文件并加载它们。从一个文件夹中加载DLLs,C#窗体窗体项目

所以我知道我可以做到这一点,通过从我的第二个项目添加.dll文件到第一个项目的引用,但特别是即时通讯想知道如果没有这个可以做到这一点? 因此,在我的第一个项目中,我只能说; “搜索”DirectoryName“,如果该文件夹中有任何.dll文件,请加载它们,然后将它们添加到项目中的列表中,即我可以看到&希望使用的项目。”

回答

4

什么你正在寻找可以使用一种叫做Reflection

反射机制来实现,您可以装配动态加载到应用程序中,除其他事项外。

你需要的类被称为大会具有用于装载组件几种有用的方法:

的LoadFile,LoadFrom和几个。

下面是在给定的路径加载组件的一个代码示例:

string path = @"D:\Folder\MyDll.dll"; 
Assembly assembly = Assembly.LoadFrom(path); 

一旦加载了一个组件并有一个装配对象的引用,则可以创建在其中定义的对象,调用他们的方法等等。

更多的资源可以在这里找到:Dynamically loading and using Types

+0

谢谢您的回答:),非常有帮助! – Danran 2012-01-19 00:06:39

0

下面是一些有用的链接。

询及SO:herehere 外部博客example

基本上你需要加载库,枚举类型和使用Activator.CreateInstance()来创建新的对象。 为您需要进行交互的类提供接口也将在此帮助您

相关问题