问题标签 [ninject]

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 回答
257 浏览

.net - ninject 是否被视为容器?

我正在和某人交谈,并提到我正在学习 IOC,并且正在使用 ninject 来感受事物。

他问我用的是什么容器?我告诉他ninject。

不知道他指的是什么,我知道温莎城堡的产品更受欢迎。

有人可以帮我解决这个问题吗?我在这里想念什么?

0 投票
1 回答
1151 浏览

.net - 当类型的构造函数未知时,如何制作 Ninject Provider?

我决定尝试变出一个容器组件来与 FubuMVC 交互。很酷的部分是它通过了 FubuMVC.Container.StructureMap 程序集所做的所有测试。但是,当我将它放入 FubuSample 时。我收到激活错误。

错误是因为在行为的提供者中,我只调用无参数构造函数来构建行为实例。这在现实生活中似乎是不可接受的。

这是它的设置方式:

我的 Load 方法中有这些绑定:

在我的提供者的 Create 方法中是:

所以我的问题是,当我完全不知道构造函数会是什么样子时,我应该如何设置提供者来创建服务的实例?或者更确切地说,如果我使用 ConstructorInfo 来确定构造函数 Ninject 是否会注入适当的依赖项?

这是使用 Ninject 2b,因为 FubuMvc 需要 CommonServiceLocator 支持。

0 投票
2 回答
832 浏览

asp.net-mvc - Ninject MVC 是否应该与 MVC 2 Preview 一起使用?

我正在运行 MVC 2 Preview,这是我第一次尝试使用 Ninject2 MVC

我大陆得到的错误是:尝试创建“MyMVC.Controllers.EventsController”类型的控制器时发生错误。确保控制器有一个无参数的公共构造函数。

我在 Global.cs 中的内容是:

这就是我的控制器的样子。

0 投票
1 回答
1526 浏览

entity-framework - 将 Ninject 与实体框架一起使用

我有一个存储库类,它接收一个名为“TestDB”的 ObjectContext。当我启动我的 Web 应用程序时,我得到一个“无法加载指定的元数据资源”,就像它不再从我的 web.config 文件中获取连接设置一样。

这是我的代码片段。

一旦了解那里发生的事情,我想传递我的 DataContenxt,但我似乎无法理解这在 Ninject 映射中应该如何看待。

0 投票
1 回答
10979 浏览

asp.net-mvc - 我应该在哪里使用 Ninject 2+ 进行注入(以及如何安排我的模块?)

我有两个相关(与这个问题)项目和其他几个项目的解决方案;

  1. 具有其他几个项目使用的功能的类库。
  2. ASP.NET MVC 应用程序。

我的问题基本上是我应该在哪里用 Ninject 2 做 IoC,考虑到......

  • 类库需要一些 DI 的爱,其中包括需要 Web 请求特定会话对象的存储库类(想想工作单元)。
  • MVC 应用程序需要 DI,因为使用 Ninject 2,您基本上是从 NinjectHttpApplication 继承的。
  • 类库的单元测试需要意识到这一点才能注入一组不同的存储库。
  • 出于同样的原因,需要注入 Web 应用程序的单元测试。

我在这里把自己描绘成一个心理角落,因为我一开始只看到了三个选项。类库中的 DI,Web 应用程序中的 DI,或两者都有,但每个都有问题:

  • 我不能在类库中进行 DI,因为 MVC 应用程序首先需要从 NinjectHttpApplication 继承。
  • 我不能只在 MVC 应用程序中进行 DI - 毕竟,其他库使用类库,而且 MVC 应用程序不应该对库的内部了解太多。
  • 我想这是我能看到的唯一出路:两个项目的独立 IoC。类库和 MVC 应用程序都有自己的 IoC 设置,并为他们的东西做 DI,而不是真正关心彼此。

有没有人有一些关于如何做这样的事情的“最佳实践”或指导方针?我无法想象我是第一个遇到这种情况的人,很高兴知道这样做的“正确”方法是什么......

谢谢!

0 投票
1 回答
9984 浏览

dependency-injection - 类库中带有 Ninject 的 DI

我通过从 web.config 派生NinjectHttpApplicationNinjectHttpModule在我的 web.config 中使用我的 Global 成功地在我的 Web 应用程序中使用了 Ninject

我现在想做的是在我的一个类库中使用 DI,但我不知道该怎么做。我有以下虚拟类:

当我实例化Class1并调用GetCustomer()时,它CustomerRepository是空的,所以我显然做错了。

另外,如果我使用构造函数注入并让我的构造函数像

我将如何实例化Class1

Ninject 很新,所以这一切都非常容易。

0 投票
2 回答
105 浏览

.net - 这个 mbunit 测试真的有什么意义吗?

我也在使用ninject。似乎因为我正在设置返回值,真正在测试什么,这是一个笑话还是我遗漏了什么?

0 投票
1 回答
5133 浏览

c# - Ninject 2.0 构造函数参数 - 当默认构造函数也存在时如何设置?

我是 IOC 容器和学习 Ninject 的新手。我使用的是从 Github 新下载的 2.0 版。

当还存在默认构造函数时,我正在尝试在构造函数上设置字符串参数。我一直在逐步浏览 Ninject 源代码,但我对用于轻松查明我遗漏的内容的模式不够熟悉。

这是我的测试控制台应用程序:

代码将“错误消息:(”打印到控制台。如果我删除 TestClass 中的默认构造函数,我会得到“Hello World!”。我在这里缺少什么?

澄清一下:我希望班级打印“Hello World!” 到带有默认构造函数的控制台。

0 投票
1 回答
337 浏览

c# - 我可以使用 ninject 即时更改实现吗?

使用ninject,我知道我可以绑定到某个实现,这样每当我这样做时:

它将加载我绑定 ninject 的具体实现。

假设我将要使用的具体实现存储在数据库(Web 应用程序)中,当我在管理面板中更改它时,它应该即时使用我想要的类。

这可能吗?

0 投票
2 回答
1469 浏览

ninject - 在 global.asax 中使用 Ninject NLogModule 记录器

我在我的 asp.net 应用程序中将 Ninject 用于 DI,因此我的 Global 类继承自 NinjectHttpApplication。

在我的 CreateKernel() 中,我正在创建我的自定义模块,并且 DI 对我来说工作得很好。

但是,我注意到 NinjectHttpApplication 类中有一个 Logger 属性,所以只要没有捕获到异常,我就会尝试在 Application_Error 中使用它。

我认为我正在为 Ninject 正确创建 nlog 模块,但我的记录器始终为空。这是我的 CreateKernel:

但是在下面的方法中,Logger 始终为空。

澄清一下,Logger 是 ILogger 类型的 NinjectHttpApplication 上的一个属性,并且具有 [Inject] 属性

知道如何正确注入 Logger 吗?