我一直使用Unity作爲IoC容器一段時間,並且找不到正確的解決方案來解決經常出現的問題。我需要創建AuditInsertLogWriter和AuditUpdateLogWriter的某些情況下取決於操作參數(它們實現IAuditOperationLogWriter接口),你可以在下面看到:Unity - 根據上下文解析正確的實例
public IAuditOperationLogWriter Create(Operation operation)
{
switch (operation)
{
case Operation.Insert:
return UnityContainer.Resolve<AuditInsertLogWriter>();
case Operation.Update:
return UnityContainer.Resolve<AuditUpdateLogWriter>();
default:
break;
}
}
的事情是,這些情況是複雜的,因爲他們自己的依賴創造。此外,我想在該工廠中刪除與Unity的依賴關係。所以,我的問題是:我如何才能實現Unity根據某些上下文來解析創建的正確類型?
在這裏看到一個籠統的回答到什麼是真正的問題,一般類型:http://stackoverflow.com/questions/1943576/is-there-a-pattern-for-initializing-objects-created-通過一個容器/ 1945023#1945023 – 2011-12-22 12:22:32