Unity IOC Builddup vs Resolve?

Jos*_*orp 19 .net ioc-container unity-container

当我使用Unity IOC时,我想知道何时使用builddup以及何时使用resolve.

我什么时候打电话拆机?

谢谢

Raf*_*eda 22

当您希望Unity容器构建实例(只在您需要它或预先存在的单例)时使用Resolve,注入其依赖项并将您的引用交给您.

当您已经拥有该对象的实例并希望容器只解析并注入其依赖项时,就会使用BuildUp.

拆解与BuildUp相反.您可以将对象传递给容器的Teardown方法,以关闭/清理/无论您想要什么.现有容器行为在拆解时没有任何作用,但可以编写扩展以利用此功能.您还可以使对象实现IDisposable,当容器本身处置时,容器将在对象上调用Dispose().

IMyService service = container.Resolve<MyService>(); // New service or pre-existing singleton

IMyService service = GetMyService(); // Get the instance from some source
container.BuildUp(service); // Inject dependencies
container.Teardown(service); // Clean-up
Run Code Online (Sandbox Code Playgroud)