2

我有一个包含 2 个主要组件 + 其他 DLL 的应用程序:

  1. 核心 DLL(获得所有核心功能)
  2. 图形用户界面
  3. 需要 DI 等的第 3 方和完全独立的 DLL。

现在我正在实现插件支持。

哪个 DLL 应该负责加载这些插件?GUI 还是核心 DLL?

我正在使用 MEF,所以不太确定将其粘贴在哪里。

4

2 回答 2

2

我认为答案取决于应用程序中如何使用部件(使用 MEF 术语)。我会根据零件的使用位置/方式来创建和填充容器。

例子:

如果您正在创建包含 GUI 视图的部件,我认为应用程序中的 GUI 层会加载它们并管理容器。

我有一个为客户端应用程序插件构建的应用程序框架,其中有一个静态应用程序管理器类,它为应用程序加载 Parts,但随后我还将 Parts 加载到我的核心逻辑使用的容器中。两者的意图完全不同,因为其中一些是我希望以后能够轻松换出的核心概念,而另一些是 UI 插件,当它们被放入并可供应用程序使用时扩展客户端功能。

此外,这些是使用不同的方法加载的......核心仅在使用特定规则启动时,另一个是从目录(插件)加载所有内容。

于 2009-04-22T22:21:46.417 回答
0

我认为Core DLL,因为它可能是插件的业务逻辑。

于 2009-04-22T20:33:32.607 回答