![]() |
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,下面的工作就完成了。
|
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 3 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 3 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 3 月前 |
![]() |
Geremia · 2D NumPy数组+1D数组? 4 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 5 月前 |
![]() |
Paul Williams · 迭代数组时输出有问题 5 月前 |