应用程序的结构是我有两个单例。一种用于管理工作,一种用于管理 SQLite 数据库。
工作管理器加载希望访问数据库的插件。有没有让他们访问 Singleton 数据库管理器的权限?如果我在插件 dll 中包含数据库管理器类 - 那会起作用吗?
我知道另一种方法是在插件界面中有一个字段并在插件加载时设置该字段,我只是想知道是否有办法做到这一点并保留我的插件架构。
谢谢。
编辑
限制:
- 无法使用外部库。
- 我希望从插件中访问的一组单例类是并且将永远是固定的。
你应该看看像Castle Windows、Sprint.NET和Ninject这样的依赖注入容器。这些将允许您自动注入依赖项或允许您的插件通过使用容器访问您的单例。我用过很多次Castle Windsor 并且可以推荐它,但提到的其他一些也被很多开发人员使用。抱歉,忘记提及Microsoft Unity 容器