通过在容器中注册 LazyOfTComponentLoader 并按照此处Lazy<T>
指定的方式解析 a ,可以延迟解析 Castle Windsor 中的组件:
container.Register(
Component.For<ILazyComponentLoader>().ImplementedBy<LazyOfTComponentLoader>(),
Component.For<ISomeService>().ImplementedBy<ServiceImpl>().LifestyleTransient()
);
var lazy = container.Resolve<Lazy<ISomeService>>();
lazy.Value.DoSomething();
但是,是否可以在容器中注册一个组件,以便它始终被解析为 aLazy<T>
而无需在解析调用中指定 Lazy ?
具体来说,我想知道在使用构造函数注入时如何将惰性组件注入到 MVC 项目中的控制器中。
编辑:您可以Lazy<ISomeService> someService
在控制器的构造函数中指定为参数,如此处所示。但是,有没有办法确保通过注册过程懒惰地解析组件?