我可以想象這在Castle中可能會非常簡單,但我對這項技術很陌生,並且幾個小時沒有運氣就一直在Google上搜索!如何在註冊時將組件作爲單例實例化?
我有以下幾點:
container.Register(
Component.For<MySpecialClass>().UsingFactoryMethod(
() => new MySpecialClass()).LifeStyle.Singleton);
現在非常正確,這是懶惰加載,即傳遞給UsingFactoryMethod()沒有被執行的lambda表達式,直到我真正讓城堡化解了我類的實例。
但是我希望Castle一旦註冊它就創建實例。這可能嗎?
謝謝!這是我最終使用的 - container.Register(Component.For()。Instance(new MySpecialClass())); –
jameskind
這看起來不是最好的方法,因爲你沒有離開實例到容器,因此打破了IoC模式。 –
@DavidPerlman正確的是,當我回答這個問題時,我認爲並不是像MosheLevi最近的回答所描述的那樣簡單。 –