我想知道在使用 Unity IOC 时何时使用 buildup 以及何时使用 resolve。
我什么时候叫拆解?
谢谢
最佳答案
当您希望 Unity 容器构造实例时使用 Resolve(当您需要它时创建一个新实例或预先存在的单例),注入(inject)其依赖项并将对对象的引用交给您。
当您已经拥有对象的实例并希望容器仅解析和注入(inject)其依赖项时,使用 BuildUp。
Teardown 与 BuildUp 相反。您可以将对象传递给容器的 Teardown 方法以关闭/清理/任何您想要的。现有的容器行为在 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
关于.net - Unity IOC Buildup vs Resolve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2046408/