MEF - 在不引用主项目的情况下共享界面

MEF - Share interface without referencing the main project

我是 MEF 的新手,我找不到问题的答案。

我正在尝试创建一个 MEF 应用程序,每个人都可以向其中添加某些插件,对于我所看到的,您可以创建一个带有插件的库,使用接口进行通信。我的问题是如何在不引用原始项目的情况下共享此界面,例如,我将构建的程序提供给朋友,他想为其添加插件。

我可能对它的工作方式有误,但我真的很喜欢它,这样任何人都可以在没有源代码的情况下添加插件。

对于有问题的特定插件,它需要做的就是接收一个字符串,更改一些内容并return一个新字符串。

简单,不是一个主要项目,而是两个:

  1. "core" dll 项目
  2. "app" 项目

然后您在 "core" 中拥有接口以及插件可能需要的任何有用的 类(实用程序等),并将实现放在 "app" 项目中。

所以,你最终得到了。

  1. "core" 项目
  2. "app" 项目
    1. 这里引用了 "core"
  3. "plugin" 项目
    1. 这里引用了 "core"
    2. 这将导出在 "core"
    3. 中找到的接口