【问题标题】:Which layer should be responsible from loading plugins?哪个层应该负责加载插件?
【发布时间】:2009-04-22 20:23:13
【问题描述】:

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

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

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

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

我正在使用 MEF,所以不太清楚该放在哪里。

【问题讨论】:

    标签: .net user-interface plugins mef


    【解决方案1】:

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

    例子:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多