gpt4 book ai didi

.net - Unity懒人解决

转载 作者:行者123 更新时间:2023-12-03 03:47:33 25 4
gpt4 key购买 nike

我有可与 Unity 配合使用的 MVC webApi 应用程序。我必须将接口(interface) ITest 解析为单例类 (DelegateHandler)。但是接口(interface) ITest 有每个 httprequest 生命周期管理器,这很重要。因此,我无法在 Application_Start 事件上解析 ITest,因为现在没有 HttpRequest,但 DelegateHandler 将仅在 httprequest 生命周期中使用 ITest。

那么是否可以将延迟解析发送给 DelegateHandler 或者也许有人有其他有趣的解决方案?

最佳答案

服务的生命周期应始终等于或短于其依赖项的生命周期,因此您通常会将 ITest 注册为 Per Http Request 或 Transient,但如果不可能,请包装依赖项 ( DelegateHandler 我假设)在代理中具有每个 Http 请求的生命周期:

// Proxy
public class DelegateHandlerProxy : IDelegateHandler
{
public Container Container { get; set; }

// IDelegateHandler implementation
void IDelegateHandler.Handle()
{
// Forward to the real thing by resolving it on each call.
this.Container.Resolve<RealDelegateHandler>().Handle();
}
}

// Registration
container.Register<IDelegateHandler>(new InjectionFactory(
c => new DelegateHandlerProxy { Container = c }));

关于.net - Unity懒人解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026061/

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