MEF:如何在不创建项目依赖项的情况下将自定义接口称为导出/导入

时间:2017-03-10 23:21:33

标签: c# mef

我是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,然后两者都能引用?

0 个答案:

没有答案