【发布时间】:2018-03-22 03:53:29
【问题描述】:
我有一个 WPF 应用程序,我的用户可以使用 MEF 为其创建自己的插件。每个插件都实现了一个接口,允许主应用程序对某些数据源执行 CRUD 操作,例如一个数据库。
我创建了 2 个插件:
- LocalDatabase - 提供来自 SQLite 数据库的数据
- RemoteDatabase - 提供来自 MySQL 数据库的数据
两者都使用实体框架来完成他们的工作。这些插件中的每一个都需要有自己的 DbConfiguration 类实现。
现在,问题是 WPF 应用程序加载了这 2 个插件,但未能为每个插件分配自己的 DbConfiguration 类实现,因为似乎每个 AppDomain 只能有一个 DbConfiguration。 所以我总是只有其中一个插件可以工作。
我在考虑只实现一个 DbConfiguration 类,并为每个插件提供一个选项来添加其所需的配置,但问题是它在 WPF 应用程序和实体框架之间创建了一些耦合。我想将实体框架的东西只保留在插件中,而不需要修改 WPF 应用程序。它不应该关心插件使用什么来访问它们的数据源。
有没有办法让它以这种方式工作?我能否以某种方式为每个插件创建一个单独的 AppDomain,这样每个插件都可以使用自己的 DbConfiguration 类?
【问题讨论】:
标签: c# entity-framework mef