2012-01-19 31 views
3

目前,我有這樣的代碼:從特定文件夾動態加載DLL?

var shellViewLibrary = Assembly.LoadFrom(Path.Combine(_DllsPath, _DllShellView)); 
IEnumerable<Type> types = shellViewLibrary.GetTypes(); 

foreach (Type type in types) 
{ 
    var typeIShellViewInterface = type.GetInterface(_NamespaceIShellView, false); 
    if (typeIShellViewInterface != null) 
    { 
     //here 
    } 
} 

的事情是,在那裏我得到//here我想用Activator.CreateInstance創建一個對象,其類型是在一個特定的文件夾type(即外建立文件夾) 我試着約20個不同的東西,大多有這樣的:http://msdn.microsoft.com/en-us/library/d133hta4.aspx 但沒有作品... 我試圖典型的是:

object MyObj = Activator.CreateInstance(shellViewLibrary.FullName, type.FullName); 

object MyObj = Activator.CreateInstance(Path.Combine(_DllsPath, _DllShellView), type.FullName); 

我總是有不同的異常,最常見的是:

XamlParseException 

我覺得,我不是在有兩個參數的正確方法使用Activator.CreateInstance。我該怎麼辦 ?

+0

'XamlParseException'時出現了與XAML的分析錯誤發生。應該有一個內部異常,所以如果你圍繞這條線進行調試,你應該可以深入研究'XamlParseException'並查看它的來源。這聽起來像你可能錯過了你試圖加載的'Assembly'所需要的東西。 –

+0

當我切換「Activator.CreateInstance」的參數時,我得到了同樣的錯誤,所以我真的覺得什麼是完全錯誤的:/ –

+0

@GuillaumeSlashy我建議在嘗試捕獲和調試時包裝Activator.CreateInstance - 被捕的異常看着我和薩繆爾斯萊德所說的內在異常。在你的Q中有進一步的代碼,它似乎並沒有使用Activator或Assembly.Load是問題,而是由Activator實例化的控件使用的Xaml文件中的錯誤。創建實例 –

回答