0

我刚刚开始了解 IOC 统一框架。我在 MSDN 上阅读了几篇文章和视频。我很了解这种统一的东西是如何运作的。

1.创建容器。
2.注册你的接口/类。
3.解决你的课程。

我认为应该为每个项目抽象步骤 1,2。创建创建容器并注册接口/类的单例类是否是个好主意,以便统一容器在整个项目中可供我解决。请指教。

4

3 回答 3

0

使用单例。在我目前的公司中,我们在 Unity 容器周围使用单例包装器:

  • 当然是单例
  • 公开最重要的功能(如注册和解析)
  • 从 web.config/app.config 获取其配置
  • 但也可以在运行时提供(例如,用于单元测试)
  • 具有在解析过程中出现意外错误时进行默认处理的功能

它就像一种魅力,可以让您轻松专注于重要的事情。

于 2013-08-12T18:00:12.620 回答
0

不要使用单例。它鼓励您到处调用 resolve,这是众所周知的 DI 反模式。

相反,在您的应用程序(桌面应用程序中的主要功能,Web 应用程序中的应用程序启动功能)中有一个点,您可以使用容器来解析您的对象图并从那里开始。

有关更多详细信息,请参阅Mark Seeman 对“组合根”的讨论。

于 2013-08-14T20:42:25.923 回答
0

除了极少数情况外,您应该始终为整个应用程序(应用程序域)拥有一个容器实例。DI 容器是线程安全的,并针对该场景进行了优化。拥有多个容器可能会导致性能问题并可能导致维护问题,因为某些场景很难实现(例如拥有应用程序范围的对象)。

于 2013-08-12T17:52:21.507 回答