![]() |
1
7
这在很大程度上是对@bsnote答案(我已经+1d)的重申,这可能有助于理解它为什么以这种方式工作。 Ninject(和其他DI/addin框架)有两种不同的功能:
您的示例代码碰巧使用了与上面2.相关联的语法(e、 例如,在MEF中,通常使用
我需要查看示例(查看源代码—它非常简短、干净且易于理解)来找到解决方法。 然而,正如@bsnote所说的,重构需求的一种方法是将数组包装在容器中,或者使用您请求的对象(即工厂方法或存储库类型构造) 你也可以解释一下你的真实情况——为什么会有一个裸阵列?当然,在这一切的背后,有一系列的项目需要被封装——这个问题当然不会出现太多? 编辑:在扩展中有一组扫描示例,我认为这些示例会攻击您正在尝试做的很多东西(在StructureMap之类的东西中,这类东西更集成,这显然有优点和缺点)。
无论哪种方式,当你有多个注册的地方,你可以很高兴地'要求'一个
|
|
2
11
Ninject支持多重注入,这将解决您的问题。 https://github.com/ninject/ninject/wiki/Multi-injection
|
![]() |
3
4
这对我来说也是个问题。Ninject注入数组的每个项,而不是数组本身,因此应该为数组项的类型定义映射。实际上,不可能将数组作为类型映射到当前版本的Ninject。解决方案是围绕数组创建一个包装器。例如,如果适合您,可以使用Lazy类。也可以创建自己的包装器。 |
![]() |
4
0
由于Array实现了IReadOnlyList,下面的工作就完成了。
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 4 月前 |
![]() |
CactusCake · if语句中应有分号 5 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |