我可以想象这在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最近的回答所描述的那样简单。 –