2012-01-18 60 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()來創建新的對象。 爲您需要進行交互的類提供接口也將在此幫助您

相關問題