Dot-Net

Unity IOC Buildup vs Resolve?

  • January 12, 2010

我想知道在使用 Unity IOC 時何時使用 buildup 以及何時使用 resolve。

我什麼時候叫拆解?

謝謝

當您希望 Unity 容器構造實例時使用 Resolve(當您需要它時創建一個新實例或預先存在的單例),注入其依賴項並將對對象的引用交給您。

當您已經擁有對象的實例並希望容器僅解析和注入其依賴項時,使用 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

引用自:https://stackoverflow.com/questions/2046408