2010-04-14 39 views
0

從Unity容器中詢問默認的ILogger時出現問題。我此設置在代碼中定義(其VB.net)在代碼中定義的統一設置問題

Dim container As IUnityContainer 
... 
container.RegisterType(Of ILogger, NullLogger)() 
container.RegisterType(Of ILogger, EntLibLogger)("EL") 

當我從容器得到ILogger我可以具有不同的名稱,例如:

Ioc.Resolve(Of ILogger)("MyLogger") 

然而,這會引發錯誤作爲映射是未設置爲「MyLogger」。我可以強制容器返回沒有名字的註冊類型嗎?實際上,當我使用從web.config設置它的工作。

任何提示最受歡迎。謝謝。歡呼聲,X.

回答

0

已註冊的實例註冊時沒有名稱,所以如果沒有找到任何條目,它就不會成爲默認/後備實例。

但是你可以爲容器編寫一個擴展來掛鉤解析過程。或者你可以簡單地爲接口IUnityContainer編寫一個擴展方法來處理這個回退行爲。

+0

感謝您的回答。我認爲Unity會以某種方式處理這個問題。例如像StructureMap。 – 2010-04-27 09:21:57

相關問題