我可以想到一些情况下,我可能想要切换容器。例如,我的当前容器停止维护,或者其他容器被证明更轻量级/高性能并更适合我的需求。如果发生这种情况,那么我可能需要重新连接很多东西。
需要明确的是,我正在考虑封装类型的注册和解析。我认为封装解析是一个易于实现的功能 - 我希望使用一个辅助/工具类来委托容器。
编辑:
假设我喜欢通过编程方式连接我的类型,以实现类型安全、编译时检查和可重构性。我正在寻找保护自己免受此代码及其对容器的依赖的影响的方法。
我还在为其他几个项目使用IoC容器,这些项目共享许多相同的关系,但是容器很难使用,所以我想进行更改。但是,更改意味着我失去了注册代码的可重用性。因此,我正在考虑封装。这不是一个巨大的负担,但我仍然希望减轻这种负担。
我想要:
- 最小化容器/容器版本更改的影响 - 在可能使用不同容器的项目之间提供某种级别的类型注册一致性 - 提供对我有意义的接口方法(例如RegisterSingleton而不是RegisterType(SomeLifetimeProvider) - 使用Unity作为示例)。 - 根据需要增强容器的条件/可扩展性,例如在解析/注册期间添加更好的缓存、日志记录等。 - 提供自己的模型来注册类型映射。
- 假设我想要在一个程序集/包中创建一堆RegistrationHandler对象,以便我可以轻松地将注册责任分离到多个类中,并自动获取这些处理程序而无需更改任何其他代码。
我意识到这有点主观,因此列出利弊可能会有所帮助。谢谢!