MEF - 在不引用主项目的情况下共享界面
MEF - Share interface without referencing the main project
我是 MEF 的新手,我找不到问题的答案。
我正在尝试创建一个 MEF 应用程序,每个人都可以向其中添加某些插件,对于我所看到的,您可以创建一个带有插件的库,使用接口进行通信。我的问题是如何在不引用原始项目的情况下共享此界面,例如,我将构建的程序提供给朋友,他想为其添加插件。
我可能对它的工作方式有误,但我真的很喜欢它,这样任何人都可以在没有源代码的情况下添加插件。
对于有问题的特定插件,它需要做的就是接收一个字符串,更改一些内容并return一个新字符串。
简单,不是一个主要项目,而是两个:
- "core" dll 项目
- "app" 项目
然后您在 "core" 中拥有接口以及插件可能需要的任何有用的 类(实用程序等),并将实现放在 "app" 项目中。
所以,你最终得到了。
- "core" 项目
- "app" 项目
- 这里引用了 "core"
- "plugin" 项目
- 这里引用了 "core"
- 这将导出在 "core"
中找到的接口
我是 MEF 的新手,我找不到问题的答案。
我正在尝试创建一个 MEF 应用程序,每个人都可以向其中添加某些插件,对于我所看到的,您可以创建一个带有插件的库,使用接口进行通信。我的问题是如何在不引用原始项目的情况下共享此界面,例如,我将构建的程序提供给朋友,他想为其添加插件。
我可能对它的工作方式有误,但我真的很喜欢它,这样任何人都可以在没有源代码的情况下添加插件。
对于有问题的特定插件,它需要做的就是接收一个字符串,更改一些内容并return一个新字符串。
简单,不是一个主要项目,而是两个:
- "core" dll 项目
- "app" 项目
然后您在 "core" 中拥有接口以及插件可能需要的任何有用的 类(实用程序等),并将实现放在 "app" 项目中。
所以,你最终得到了。
- "core" 项目
- "app" 项目
- 这里引用了 "core"
- "plugin" 项目
- 这里引用了 "core"
- 这将导出在 "core" 中找到的接口