0
我遇到的情況,我的客戶是WPF
應用讓我們說W
,有3個總成說A
,B
,C
未暴露於W
,因此3個組件在一個具體的工廠引用,說F
這創建所需的實例並提供給W
。如何在另一個引用程序集中加載引用程序集?
我在F
中使用反射來生成3個對象。
下面是代碼,如果我在W
引用A
return (IClass)Activator.CreateInstance(Assembly.Load("A").GetType("A.AClass"),
BindingFlags.NonPublic | BindingFlags.Instance, null, null, null);
代碼工作,但是當A
在F
被引用不起作用(System.IO.FileNotFound Exception
)(我十字Assembly.GetExecutingAssembly().GetReferencedAssemblies()
檢查和A
未裝載)。
我看到如果不需要,可能不會加載Assembly
。但是,我的WPF
客戶端如何加載程序集。如果這是預期的行爲,我會找到當前的Directory
路徑並將其附加A.dll
。 有什麼想法嗎?
您是否嘗試過使用['AppDomain.AssemblyResolve'](http://msdn.microsoft.com/pl-pl/library/system.appdomain.assemblyresolve(v = vs.110).aspx)處理程序? –
這不是一個後備技術,我的意思是我能夠實際獲得原始所需的程序集? –
據我所知,你知道這需要大會,所以你可以通過'Assembly.LoadFrom'提供它 –