问题标签 [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.
.net - ninject 是否被视为容器?
我正在和某人交谈,并提到我正在学习 IOC,并且正在使用 ninject 来感受事物。
他问我用的是什么容器?我告诉他ninject。
不知道他指的是什么,我知道温莎城堡的产品更受欢迎。
有人可以帮我解决这个问题吗?我在这里想念什么?
.net - 当类型的构造函数未知时,如何制作 Ninject Provider?
我决定尝试变出一个容器组件来与 FubuMVC 交互。很酷的部分是它通过了 FubuMVC.Container.StructureMap 程序集所做的所有测试。但是,当我将它放入 FubuSample 时。我收到激活错误。
错误是因为在行为的提供者中,我只调用无参数构造函数来构建行为实例。这在现实生活中似乎是不可接受的。
这是它的设置方式:
我的 Load 方法中有这些绑定:
在我的提供者的 Create 方法中是:
所以我的问题是,当我完全不知道构造函数会是什么样子时,我应该如何设置提供者来创建服务的实例?或者更确切地说,如果我使用 ConstructorInfo 来确定构造函数 Ninject 是否会注入适当的依赖项?
这是使用 Ninject 2b,因为 FubuMvc 需要 CommonServiceLocator 支持。
asp.net-mvc - Ninject MVC 是否应该与 MVC 2 Preview 一起使用?
我正在运行 MVC 2 Preview,这是我第一次尝试使用 Ninject2 MVC
我大陆得到的错误是:尝试创建“MyMVC.Controllers.EventsController”类型的控制器时发生错误。确保控制器有一个无参数的公共构造函数。
我在 Global.cs 中的内容是:
这就是我的控制器的样子。
entity-framework - 将 Ninject 与实体框架一起使用
我有一个存储库类,它接收一个名为“TestDB”的 ObjectContext。当我启动我的 Web 应用程序时,我得到一个“无法加载指定的元数据资源”,就像它不再从我的 web.config 文件中获取连接设置一样。
这是我的代码片段。
一旦了解那里发生的事情,我想传递我的 DataContenxt,但我似乎无法理解这在 Ninject 映射中应该如何看待。
asp.net-mvc - 我应该在哪里使用 Ninject 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,而不是真正关心彼此。
有没有人有一些关于如何做这样的事情的“最佳实践”或指导方针?我无法想象我是第一个遇到这种情况的人,很高兴知道这样做的“正确”方法是什么......
谢谢!
dependency-injection - 类库中带有 Ninject 的 DI
我通过从 web.config 派生NinjectHttpApplication
并NinjectHttpModule
在我的 web.config 中使用我的 Global 成功地在我的 Web 应用程序中使用了 Ninject
我现在想做的是在我的一个类库中使用 DI,但我不知道该怎么做。我有以下虚拟类:
当我实例化Class1
并调用GetCustomer()
时,它CustomerRepository
是空的,所以我显然做错了。
另外,如果我使用构造函数注入并让我的构造函数像
我将如何实例化Class1
?
Ninject 很新,所以这一切都非常容易。
.net - 这个 mbunit 测试真的有什么意义吗?
我也在使用ninject。似乎因为我正在设置返回值,真正在测试什么,这是一个笑话还是我遗漏了什么?
c# - Ninject 2.0 构造函数参数 - 当默认构造函数也存在时如何设置?
我是 IOC 容器和学习 Ninject 的新手。我使用的是从 Github 新下载的 2.0 版。
当还存在默认构造函数时,我正在尝试在构造函数上设置字符串参数。我一直在逐步浏览 Ninject 源代码,但我对用于轻松查明我遗漏的内容的模式不够熟悉。
这是我的测试控制台应用程序:
代码将“错误消息:(”打印到控制台。如果我删除 TestClass 中的默认构造函数,我会得到“Hello World!”。我在这里缺少什么?
澄清一下:我希望班级打印“Hello World!” 到带有默认构造函数的控制台。
c# - 我可以使用 ninject 即时更改实现吗?
使用ninject,我知道我可以绑定到某个实现,这样每当我这样做时:
它将加载我绑定 ninject 的具体实现。
假设我将要使用的具体实现存储在数据库(Web 应用程序)中,当我在管理面板中更改它时,它应该即时使用我想要的类。
这可能吗?
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 吗?