我们目前正在使用 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; }
在某些形式中,我们会收到错误消息,指出导出的函数与委托类型不匹配。在其他情况下,类型似乎没有被导出。有没有人成功做到这一点?