gpt4 book ai didi

c# - Ninject 3 InRequestScope 不为同一请求返回同一实例

转载 作者:可可西里 更新时间:2023-11-01 09:01:19 25 4
gpt4 key购买 nike

最近,我将我的一个 MVC3 项目从 Ninject 2 升级到 Ninject 3。

在尝试找出 InRequestScope 不再可用的原因几分钟后,我发现它现在是 Ninject.Web.Common 的扩展。

现在,当我尝试运行该应用程序时,Ninject 的工作方式就像所有与范围 InRequest 绑定(bind)的类型都是 InTransientScope 一样;每次都会创建一个新实例。

在我继承自 NinjectModule 的类中,我有一个简单的绑定(bind):

Bind<ViewModel.Activity>().ToSelf().InRequestScope();

在我的 Controller 中,我有 2 个类型为 ViewModel.Activity 的属性,它们标有 Ninject 属性。

  [Inject]
public ViewModel.Activity Activity { get; set; }

[Inject]
public ViewModel.Activity Activity1 { get; set; }

如果我在 Debug模式下查看两个属性的 HashCode 值,它们都有不同的值,但 HttpContext 是相同的;我有同样的要求。

关于如何在新版本的 Ninject 3 中正确使用新的 Ninject.Web.Common.InRequestScope,我错过了什么?

非常感谢。

最佳答案

添加为答案以便关闭

不要使用自定义工厂。只需安装 Ninject.MVC3 并将您的绑定(bind)复制到 NinjectWebCommon.cs 文件,然后删除所有旧代码。

关于c# - Ninject 3 InRequestScope 不为同一请求返回同一实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591203/

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