如果這個問題已經被問了100次,我很抱歉,但是我真的很努力地讓它工作。用MEF導入導出對象
假設我有三個項目。
- Core.dll
- 具有公共接口
- Shell.exe
- 載荷在裝配夾中的所有模塊。
- 參考Core.dll
- ModuleA.dll
- 出口名稱,模塊的版本。
- 參考Core.dll
Shell.exe有一個[出口]包含我需要注入到所有加載的模塊第三方應用程序的單一實例。
到目前爲止,我在Shell.exe代碼:
static void Main(string[] args)
{
ThirdPartyApp map = new ThirdPartyApp();
var ad = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var dircatalog = new DirectoryCatalog(".");
var a = new AggregateCatalog(dircatalog, ad);
// Not to sure what to do here.
}
class Test
{
[Export(typeof(ThirdPartyApp))]
public ThirdPartyApp Instance { get; set; }
[Import(typeof(IModule))]
public IModule Module { get; set; }
}
我需要從Main
方法來創建測試的情況下,和負載Instance
與map
然後加載從ModuleA.dll模塊即在執行目錄中,然後將[Import] Instance
放入加載的模塊中。
在ModuleA
我有這樣一個類:
[Export(IModule)]
class Module : IModule
{
[Import(ThirdPartyApp)]
public ThirdPartyApp Instance {get;set;}
}
我知道我有一半的辦法,我只是不知道如何把它放在一起,這主要與裝載了測試用的實例map
從Main
。
任何人都可以幫助我。