在非常非常有限的場景中,我需要從未知類型(在編譯時)轉到爲該類型註冊的對象實例。Castle Windsor Weak Typed Factory
在大多數情況下,我使用類型的工廠和我知道我想要在編譯時間解決這些類型...所以我注入Func<IMyType>
成構造
...但是這限制了場景數,爲了避免直接調用容器(因此必須從庫中引用Windsor,這是我想避免的反模式),我需要注入一個Func<Type,object>
...我想在內部container.Resolve(type)爲Func的Type參數。
有沒有人有最簡單/最直接的方式來設置這個建議?
我嘗試以下,但這種設置,我最終完全繞過普通TypedFactoryFacility這絕對不是我想要的:事先的任何援助
Kernel.Register(Component.For(typeof (Func<Type, object>)).LifeStyle.Singleton.UsingFactoryMethod(
(kernel, componentModel, creationContext) =>
kernel.Resolve(/* not sure what to put here... */)));
感謝。
我決定注入一個簡單的IServiceProvider實例,它需要一個Func。有什麼擔憂嗎? –
Jeff
2011-01-09 06:18:53