我已經添加了CollectionResolver
作爲我的溫莎核心的子解析器,它會妥善解決上物體注入依賴的集合。也就是說,如果我有Castle Windsor CollectionResolver:爲什麼它不適用於Resolve調用?
class X { public X(IComponent[] components) { ... } }
container.Register(/* lots of IComponents */);
container.Register(Component.For<X>());
當我解決components
參數構造函數是正確構造它
container.Resolve<X>()
但如果相反,我只是想獲得部件本身的列表,
container.Resolve<IComponent[]>()
我得到一個ComponentNotFound
例外抱怨我沒有註冊的任何組件IComponent[]
。我發現這種不對稱有悖常理,因爲我不知道爲什麼,內核應該採取不同的時,它是解決它的構造函數/屬性中找到的依賴時相比,它是解決到依賴性它的用戶會喜歡它來解決。
「我同意這是不是真的不直觀。」我認爲你的意思是說這不是很直觀。 – Steven 2011-05-03 10:43:15
是的,謝謝 – 2011-05-03 11:04:38