我们目前正在使用MEF按名称导入和导出委托。
public delegate IThing ThingGenerator();
[Export("ThingGenerator")]
public IThing MyThingGenerator() { ... }
[ImportMany("ThingGenerator")]
public IEnumerable<ThingGenerator> ThingGenerators { get; set; }
为了可维护性,我们希望使用类型导入和导出。但是,我们似乎无法做到这一点。
[Export(typeof(ThingGenerator))]
public IThing MyThingGenerator() { ... }
[ImportMany(typeof(ThingGenerator))]
public IEnumerable<ThingGenerator> ThingGenerators { get; set; }
在某些形式中,我们会收到错误,指出导出的函数与委托类型不匹配。在其他情况下,类型似乎不会导出。有人这么成功吗?