gpt4 book ai didi

asp.net-mvc - 自动延迟解析 CaSTLe Windsor 中的组件

转载 作者:行者123 更新时间:2023-12-02 00:10:51 25 4
gpt4 key购买 nike

可以通过在容器中注册 LazyOfTComponentLoader 并解析 Lazy<T> 来延迟解析 CaSTLe Windsor 中的组件。按照说明here :

container.Register(
Component.For<ILazyComponentLoader>().ImplementedBy<LazyOfTComponentLoader>(),
Component.For<ISomeService>().ImplementedBy<ServiceImpl>().LifestyleTransient()
);

var lazy = container.Resolve<Lazy<ISomeService>>();

lazy.Value.DoSomething();

但是,是否可以在容器中注册一个组件,使其总是解析为Lazy<T>无需在 resolve 调用中指定 Lazy?

具体来说,我想知道如何在使用构造函数注入(inject)时将 Lazy 组件注入(inject)到 MVC 项目中的 Controller 中。

编辑:您可以指定 Lazy<ISomeService> someService作为 Controller 构造函数中的参数,可以看出 here .但是,有没有办法确保通过注册过程延迟解析组件?

最佳答案

如果你想解析组件的延迟加载实例,你需要做一个 Resolve<Lazy<ISomeService>>() .函数 lazy.Value 将执行组件的实际解析。如果您执行 resolve,您将直接获得您的组件。

如果你真的想要一个只在第一次使用时解析而不使用 Lazy 的组件,你可以求助于编写一个拦截器。

祝你好运,马尔维恩。

关于asp.net-mvc - 自动延迟解析 CaSTLe Windsor 中的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15466370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com