问题标签 [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 回答
7610 浏览

asp.net-mvc - 将 ninject 与 Ninject.Web.Api 一起用于 Web Api 2 在 ASP.NET MVC 5 中不起作用

我正在开发一个 Asp.NET MVC 项目。我的项目也有 web api。我在 Visual Studio 3 中使用 ASP.NET MVC5 和 Web Api 2。我正在使用 ninject 进行依赖注入。我知道 ninject for web 不适用于 Web Api 2。所以我尝试使用 Ninject for Web Api。

我使用 nuget 包管理器为 web api 2 包安装了 ninject

在此处输入图像描述

然后我使用 nuget 包管理器安装了 Ninject.Web

在此处输入图像描述

然后在 NinjectWebCommon 中,我在 RegisterServices 中添加了这一行

这是我注册一个依赖项的完整 NinjectWebCommon 类

这是我的控制器

然后当我运行我的代码时,它给了我这个错误

在此处输入图像描述

更新

但是当我访问 apiController 时,它正在工作。

这是我的网络 api 控制器

所以我发现它适用于 web api,但不适用于 web 项目。我在同一个项目中使用两者。

0 投票
1 回答
997 浏览

c# - 使用 Ninject 将依赖项注入 Global.asax 的 Application_Start 方法

我目前正在尝试使用 Ninject 和 Ninject.Web 将依赖项注入到 ASP.NET WebForms 应用程序中的全局类 (Global.asax) 中。一旦我尝试调用注入类中的任何函数(例如在 Application_Start 中),我就会得到 NullReferenceException。

全球.asax:

NinjectWebCommon.cs

IJobScheduler

作业调度器

我已经在尝试使用属性注入,因为全局类无法使用构造函数注入。DI 在其他任何地方都可以工作,只是不在我的 Global.asax中,我需要在启动期间注册一些东西。

我找到了一些相关问题的答案,例如:如何解决 ASP.NET 中全局文件中的 Ninject 依赖项?但不幸的是,这对我不起作用。

我正在使用以下 Ninject NuGet 包:

有任何想法吗?

0 投票
2 回答
149 浏览

c# - 使用 Ninject 动态绑定 UserStore

我有以下用户商店:

在我的启动中,我需要将它与另一个库中的自定义用户绑定。我试图避免在我的项目中完全引用该库。我引用了接口,这就是我在整个项目中用来访问属性等的接口。我想不通的是如何动态绑定以下语句:

MyCustomUser延伸IdentityUser

0 投票
1 回答
256 浏览

vb.net - ASP.NET Web Forms + Ninject + Helper Class with iService - 如何让 Ninject 处理 iService?

我有一个用 .NET 4.5.2 上运行的 VB.NET 编写的 ASP.NET Web 窗体项目

我已经成功地将 Ninject 插入到我的应用程序中,但是我遇到了障碍。

我在我的网页中使用 Ninject 属性注入(示例如下)

对这项工作的所有调用......所以这很好

但是,在我的应用程序中,我们有一个类用于将调用包装到我们的服务中(见下文)

这个类被网页使用...

这不起作用 - 在 MyWrapper 类中,Ninject 没有注入 IService。

我猜是因为我的课程不是网页,它不在管道中,所以 Ninject 没有对它做任何事情。

我已经阅读了一些其他建议修改 MyWrapper 以从 Ninject.Web.PageBase 继承的帖子,但是尝试过它似乎不起作用。

有没有人有任何建议?

MyWrapper 在我们的应用程序中有 100 多个引用,因此理想情况下我不想更改每一行代码。

此外,MyWrapper 类有一些共享/静态方法——这会导致问题(如有必要,我可以更改它)。

仅供参考 - 上面的代码应该被视为伪代码 - 我是临时输入的而不是复制粘贴 - 所以它可能包含语法错误。

0 投票
1 回答
55 浏览

ninject - Ninject Alter Binding base on Owin.Context.User.Identy

I need to change ninject binding base on User.Identity.

I have this scenario: base on user Actor claim which I use for my own purpose. I have to inject on my class constructor the value of Claims.Actor, how can I do that?

#xA;

thanks

0 投票
0 回答
264 浏览

c# - Ninject insingletonscope 为每个请求创建多个实例

我正在学习 Ninject 并进行试验(周四是一个 web api 项目)。

我写了一个控制器,它将调用存储库并更新数据源中的元素

我有一个充当数据源的类(为了简单起见)

在我的 Ninjectwebcommon 文件中,我以下列方式创建依赖项

现在,对于我向控制器发出的每个请求,它都会创建一个新的 UserDb 实例,而不是使用已经创建的实例。

我以为 InSingletonScope 创建一次并分发它,所以对象的状态仍然存在?我错过了什么?

0 投票
1 回答
214 浏览

c# - 在内核中绑定时的 ToConstant

我们有一个类似下面的代码。

我在下面的链接中看到了stackoverflow:

使用 Ninject 绑定到常量和绑定到作用域中的类型

Kernel.Bind<**Interface1**>().To(typeof(xyz)).InSingletonScope()如果我们不想在此时创建对象,而是在进行调用时,我们可以使用它吗?

0 投票
1 回答
661 浏览

c# - 在两个服务的构造函数之间检测到 c# 循环依赖中绑定中的注入错误

我有一个类,你可以看到它的构造函数:

在全球部分,我定义了这个:

但是当我运行我的页面时,我得到了这个错误:

0 投票
0 回答
932 浏览

c# - 将 Ninject 与静态方法一起使用

我的目标是在我的应用程序中使用Ninject和静态方法。我知道静态方法不应该有任何依赖关系,因为从测试的角度来看它很难。但是,在我的应用程序中,我无法将每个方法从静态变为非静态。我需要以最少的更改来实现 DI,即我应该一次性更改代码,并且应该在调用该方法或类的任何地方更改实现。我也不想使用服务定位器模式,因为它甚至不是纯 DI 模式。

为了牢记以上所有要点,我实施了以下设置,并且运行良好。无论我是否正确使用 Ninject 和静态方法,我都需要你的想法。

我的 ASP.NET WebForms 设置:

解决方案:NinjectPlayGround

项目:

NinjectPlayGround(Web 项目)
NinjectPlayGround.BL(业务层)
NinjectPlayGround.Common(POCO 层)

在此处输入图像描述

为了使用 Ninject,我安装了Ninject.Web

NinjectWebCommon.cs 代码:

我在那里添加了以下两条自定义行:

CommonHelper 是具有静态方法的类,我想在其中使用 Logger 实例。

CommonHelper 类代码:

ILogger 类代码:

DefaultLogger 类代码:

由于 Ninject 属性不允许在这样的静态属性上使用:

我通过NinjectWebCommon类中存在的RegisterServices方法设置该属性,该方法在 每个应用程序启动时仅调用一次(如果我在这里错了,请纠正我)

在 UI 中,这个辅助方法是这样调用的:

上述设置工作正常,即如果我将 DefaultLogger 更改为 PersistentLogger(这是 ILogger 的另一种实现)

我可以看到 PersistentLogger 被调用而不是 DefaultLogger 而没有在CommonHelper类中进行任何混乱/更改。

这是将 Ninject 与静态方法一起使用的正确方法吗?

这就是我需要在NinjectWebCommon类的RegisterServices方法中设置我需要通过 DI 设置的所有静态属性的方式吗?

我会在这种实施中遇到任何困难吗?

编辑:我已经经历过Ninject 和静态类 - 如何?这是理论上的。我已经询问了在 Ninject 中使用 staic 方法的完整实际实现。此外,这个问题是针对静态类的,在我的案例中,它不是静态类,而是静态方法。

0 投票
0 回答
133 浏览

c# - Ninject xml 从另一个类库注入

我正在尝试从另一个类库注入,但它不起作用,我收到此错误:无法解析在“to”属性中定义的类型“BLL.UserBLL,MyProject.Core”。

XML:

所以我试图在外部类库“MyProject.Core”的命名空间“BLL”中使用类 UserBLL。

MyProject.Core 在 MyWebProject 中被引用

我究竟做错了什么?