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

c# - Ninject,多个服务绑定

我正在使用 Ninject 加载几个模块。当两个模块尝试为一个接口绑定两个不同的实现时,ninject 会引发一个错误,即不允许对一个服务进行多个绑定。

我正在使用的所有其他 IoC 框架(Unity、Windsor、Spring.net 等)都能够为一个接口“注册”多个实现。

让我举一个现实生活中的例子:

上面会产生一个异常,我希望它能够解析在最后一个模块中注册的类型以加载到内核中。我已经使用 Autofac 尝试了完全相同的方法,它按我的预期工作。

0 投票
2 回答
1336 浏览

c# - 如何在 Ninject 中使用装饰器声明责任链?

我想在 Ninject 中使用装饰器声明一个责任链。

有没有人这样做过?

谢谢。

0 投票
4 回答
2611 浏览

asp.net-mvc - 中等信任中 MVC 控制器 + 依赖注入 (Ninject) 的问题

我想在中等信任环境中使用依赖注入。为此,我选择了Ninject,因为有人告诉我它的重量很轻。如何设置注入控制器?

当我尝试创建自定义控制器工厂时:

但我遇到了这个错误:

如果控制器没有控制器工厂,请确保它具有无参数的公共构造函数。”

知道如何让 Ninject 或任何其他 IoC 框架在中等信任下工作(意味着不使用反射)

0 投票
2 回答
252 浏览

c# - 为您的控制反转容器反转控制?

我最近不得不将使用 Ninject 1.0 的相对较大的控件库更新到 Ninject 2.0,以帮助解决我在 1.0 中遇到的一些问题。更新进展顺利,我认为 Ninject 2.0 更快。

然而,为了在未来尝试避免这个问题,我创建了自己的用于注入字段和属性的接口(这实际上将调用我希望在当前 Web 应用程序中使用的 IOC 容器上的方法)。所以现在我的控制库独立于任何特定的 IOC 容器,这将加速未来该领域的任何变化。

我想知道有没有其他人做过同样的事情?

我对它所取得的成就感到满意,但理想情况下我想更新它。在我的控件中,我通常将这些注入字段创建为受保护的,并将它们设置在该控件的构造函数中。

我遇到的问题是我必须在所有对象上使用“ref”来实际设置属性,而我不能直接在属性上使用它。

我更愿意按照这些思路做一些事情,但我认为这是不可能的。

有没有人对如何整理代码或使其以更清洁的方式工作有任何想法?我还想避免使用属性,因此它会迫使开发人员决定在控件中的某个点注入变量。

欢迎所有的想法和感受。

谢谢

0 投票
3 回答
3638 浏览

c# - 使用 Ninject(或其他容器)如何找出请求服务的类型?

假设我有一个服务接口:

该服务的具体实现是通用的:

我还有其他一些需要 IFooService 实例的类:

我需要连接我的 IoC 容器,这样当 Bar 被创建时,它会传递一个 FooService<Bar> 的构造函数参数。还有很多其他的类,就像 Bar 一样。每个可能还需要传递给他们的 FooService<TRequestingClass> 实例,其中 TRequestingClass 是需要 IFooService 实例的类的类型。我不需要将这种古怪暴露给 IFooService 的消费者。他们应该关心的是他们可以调用他们传递的 IFooService 的方法。他们不需要知道传递给他们的 IFooService 的具体实现需要构造任何特殊的东西。

FooService<T> 的可接受替代方案是非泛型类,其构造函数中包含字符串参数,其中包含为其创建的类的名称。IE:

如何连接我的 IoC 容器以这种方式构建依赖项?

如果您对我为什么想要这样一个奇怪的结构感到困惑,请考虑一下当您获得使用 log4net.LogManager.GetLogger(typeof(SomeClass)) 创建的 ILog 时 log4net 的最佳工作方式。我不想在我的代码中乱扔对 log4net 的引用,所以我想编写一个简单的 ILogger 接口,并用这样的东西来实现它:

0 投票
1 回答
910 浏览

windows-services - win服务中的ninject内核引用

我有简单的赢服务,定期执行一些任务。我应该如何将 Ninject 内核传递给我的所有任务类?

创建基本任务类的静态变量并在服务启动时对其进行初始化是个好主意吗?

0 投票
1 回答
1054 浏览

dependency-injection - 为什么我的 Ninject DI 应用程序失败并出现 ActivationException?

我是 IoC/DI 框架的新手。我正在尝试的第一个是 Ninject 框架。这看起来很简单,但我无法让我的控制台应用程序运行。我不断收到一个 ActivationException 说明:

我的代码非常简单。这是我的程序文件...

这是我的ninject绑定模块...

这是接收注入类的类...

这是注入的实际类...

最后是注入类应该实现的简单接口......

谁能看到我做错了什么?

0 投票
2 回答
1986 浏览

webforms - 使用 Web 表单和 DI 对象实例化的 MVP 模式

我正在使用通用存储库模式来保存我的数据。在 PageLoad 上,我正在创建一个新的 Repository(来自 IRepository)对象,在 PageUnload 上,我将其处理掉。

MasterPage/Page 应该负责实例化传递给演示者的对象,还是应该由演示者负责?我更关心的是测试演示者而不是页面(视图),因为它更容易模拟传递给演示者的接口。

示例页面

在这种情况下,诸如 StructureMap 或 Ninject 之类的 DI 框架会有所帮助吗?它会负责处理此类物品吗?

0 投票
5 回答
1953 浏览

c# - 加载程序集后执行的 C# 方法

我编写了一些 C# 类库,我想使用 Ninject 为我的类提供依赖注入。类库是否可以声明一些代码(方法),这些代码(方法)将在每次加载类库时执行。我需要这个来定义 Ninject 的绑定。

0 投票
3 回答
3660 浏览

dependency-injection - IoC、AOP 等

什么是 IoC 容器?

什么是 IoC/DI 框架?

为什么我们需要 IoC/DI 框架?

IoC/DI 和 AOP 之间有什么关系吗?

关于 IoC 和 AOP,Spring.net/ninject 是什么?