我是MEF的新手。在MSDN example中,应用程序和DLL都在同一个解决方案中,因此它们通常可以将自定义接口(IOperation)称为导出和导入(在应用程序的程序集中定义)
[Export(typeof(SimpleCalculator3.IOperation))]
[ExportMetadata("Symbol", '%')]
public class Mod : SimpleCalculator3.IOperation
{
public int Operate(int left, int right)
{
return left % right;
}
}
但是我希望能够在不共享主项目源/需要链接到程序集的情况下创建插件。我认为它就像Pinvokes,如果我只是在两边定义重复和相同的接口,它可以解决它们匹配,但似乎没有。
如果Import界面的定义在应用程序中,我如何在独立项目中引用Export端的接口?
我能想到的唯一解决方法是创建一个只包含导出/导入接口模板定义的公共DLL,然后两者都能引用?