问题标签 [ninject.web]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1499 浏览

nuget - 无法在 Nuget 中将 Ninject 升级到最新版本

我有一个使用一些 Ninject 包的 ASP.NET WebForms 应用程序,但我被困在某个版本上。当我尝试升级到最新版本时,出现“无法解决依赖关系”问题。

有问题的软件包是:

如果我尝试更新Ninject,我会得到:

无法解决依赖关系。“Ninject 3.3.4”与“Ninject.Web 3.2.1 约束:Ninject (>= 3.2.0 && < 3.3.0)”不兼容

Ninject.Web已经是最新版本了!

我应该改变依赖行为Ninject.Web还是不安全?如果我这样做,我应该将依赖行为更改为什么?

谢谢

0 投票
0 回答
96 浏览

c# - ASP.NET Webform如何使用Ninject.Web.Common.WebHost Prop注入

我已经在 App_Start Ninject.Web.Common 中绑定了我的所有服务,并在我的 aspx 页面中尝试 [Inject] 属性注入。

如何使用属性注入?我的网络表单项目中的异常。我注入的所有道具都将变为空。

异常堆栈跟踪:

System.NullReferenceException 未被用户代码 HResult=-2147467261 Message=Nesne başvurusu bir nesnenin örneğine ayarlanmadı 处理。Source=VDershane.Base StackTrace: konum: VDershane.Base.WebForms.DRecoveryPageLite.LoadLang() c:\Users\Alican Kablan\Documents\Yeni klasör\WebForms\DRecoveryPageLite.cs içinde: satır 158 konum: VDershane.Base.WebForms。 DRecoveryPageLite.OnLoad(EventArgs e) c:\Users\Alican Kablan\Documents\Yeni klasör\WebForms\DRecoveryPageLite.cs içinde: satır 191 konum: System.Web.UI.Control.LoadRecursive() konum: System.Web.UI。 Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) InnerException:

我的网络表单项目参考

框架 4.5

忍者 3.3.3

Ninject.Web.Common 3.3.1

Ninject.Web.Common.WebHost 3.3.1


在我的Mvc项目中(我正在这样工作):

0 投票
0 回答
269 浏览

asp.net - 使用 Ninject 进行 Asp.Net Webforms 构造函数注入

当我尝试安装 Ninject.Web 时,我得到:

无法解决依赖关系。“Ninject 3.3.4”与“Ninject.Web 3.2.1 约束:Ninject (>= 3.2.0 && < 3.3.0)”不兼容

这个 SO answer中,据说我们不必使用 Ninject.Web。但没有它,我无法在构造函数中为常规 WebForms 页面注入依赖项。

那么,如果我不能将 Ninject.Web 与最新的 Ninject 包一起安装,我应该如何将依赖项注入到常规的 webforms 页面中呢?而且我不想将 Ninject 模块降级到以前的版本。

0 投票
0 回答
33 浏览

entity-framework - 使用 Owin 进行 Ninject:InRequestScope 不起作用

我用 EF6 + Ninject + Owin 创建了一个项目。我意识到 Ninject InRequestScope 不起作用,事实上,在单个 Web Api 请求中,我的 DBContext 派生类的构造函数不止一次触发。

我的 web api 项目的启动文件是这样的:

我的模块:

我不使用引导程序“NinjectWebCommon”,因为我在网上找到了这种方法。

是否存在绕过此错误的方法?

0 投票
0 回答
22 浏览

c# - DI 根据父类的范围注入不同的具体类

我刚刚在我的 ASP.NET Web 窗体应用程序中发现了一个错误,其中请求范围的服务 ( ServiceA) 被注入到单例服务 ( ServiceB) 中,其不利影响是使用单例的东西正在从另一个长期失效的请求中获取内容。

我真的很想ServiceA成为请求范围,因为它允许我在本地缓存检索到的与用户会话相关的数据,但显然我不应该将它注入到单例服务中(不知道为什么 NInject 在构建图表时没有抛出异常但这是一个单独的问题)。

我的解决方案是创建一个优化程度较低(即非缓存)的单例版本,ServiceA并调整现有的请求范围版本以缓存结果,但从单例版本(本身是一个依赖项)中获取实际数据。两个版本都将实现接口IServiceA

我遇到的问题是,我想让 NInject在注入单例SingletonServiceA时使用类,并在注入请求范围的服务时使用类。IServiceARequestScopedServiceAIServiceA

有没有办法做到这一点,以便不需要将当前请求的所有服务IServiceA更改为显式请求中间接口(ISingletonServiceAIRequestScopedServiceA)?

我尝试了以下方法:

NInject 模块需要做这样的事情:

有没有办法做到这一点?