我已經實現了一個基於C# with MEF
的非常小的插件系統。問題是,我的插件沒有實例化。在Aggregate-Catalog
我可以看到my plugin listed
。但是,在我編寫這些部分之後,插件列表中沒有插件,我做錯了什麼?基於MEF的插件系統不能插件我的插件
這裏是我的代碼片段:
插件-裝載機:
[ImportMany(typeof(IFetchService))]
private IFetchService[] _pluginList;
private AggregateCatalog _pluginCatalog;
private const string pluginPathKey = "PluginPath";
...
public PluginManager(ApplicationContext context)
{
var dirCatalog = new DirectoryCatalog(ConfigurationManager.AppSettings[pluginPathKey]);
//Here's my plugin listed...
_pluginCatalog = new AggregateCatalog(dirCatalog);
var compositionContainer = new CompositionContainer(_pluginCatalog);
compositionContainer.ComposeParts(this);
}
...
這裏,插件本身:
[Export(typeof(IFetchService))]
public class MySamplePlugin : IFetchService
{
public MySamplePlugin()
{
Console.WriteLine("Plugin entered");
}
...
}
我複製你的代碼中的控制檯應用程序和它的工作沒有問題。 –