问题标签 [property-injection]

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 投票
7 回答
3970 浏览

inversion-of-control - Windsor Container:如何指定一个公共属性不应该被容器填充?

在实例化一个类时,Windsor 默认将类的所有公共属性视为可选依赖项并尝试满足它们。就我而言,这会创建一个相当复杂的循环依赖,导致我的应用程序挂起。

我如何明确告诉温莎城堡它不应该试图满足公共财产的要求?我认为一定有那个程度的属性。但是我找不到它,所以请让我知道适当的命名空间/程序集。

如果有任何方法可以在没有属性(例如 Xml 配置或通过代码配置)的情况下执行此操作,那将是更可取的,因为发生这种情况的特定库迄今为止不需要依赖于 castle。

0 投票
1 回答
3584 浏览

dependency-injection - 如何让 Castle Windsor 自动注入属性?

我的课程中有一个用于日志记录服务的属性。

我在我的组件注册中有这个:

但是,Windsor 似乎没有注入 Logger - 我错过了什么吗?

0 投票
3 回答
1853 浏览

inversion-of-control - 使用 Microsoft Unity 进行编程属性注入

我在我的解决方案中使用构造函数注入,但是这个类有一个属性,我不想在我具有不变依赖项的构造函数中传递该属性。

假设我有一个 ILogger,它有一个我想设置的 FileName 属性,同时仍然让它在构造函数中设置依赖关系。我如何去注册类型,同时传递默认连接字符串。

我希望有一种简单的方法来做到这一点 - 最好不要用属性装饰属性,但如果使用属性更容易设置,我想这很酷:)

所以问题是,我如何在也使用构造函数注入的对象上注入属性值 - 使用 Unity。

更新:我在标题中提到了它,但我忘了在正文中详细说明——我想手动(在代码中)设置这些依赖项,而不是在配置文件中。

0 投票
2 回答
2649 浏览

.net - 如何防止 Castle Windsor 注入属性依赖?

有没有办法防止 Castle Windsor 自动将依赖项注入属性(除了 [DoNotWire] 属性)?

0 投票
1 回答
3511 浏览

c# - ActionFilterAttribute 的 Ninject 2 属性注入不起作用

我有一个方法属性,它期望 Ninject 2 注入几个属性,但是userSession现在jobRepository为空:

这是控制器中的方法:

我知道我的设置工作正常,因为如果我在控制器上使用构造函数注入,控制器的参数就会被注入。尽管需要使用属性注入,但这对属性没有多大帮助。我在这里错过了什么吗?

以下是 Global.asax.cs 的相关药水:

0 投票
1 回答
1535 浏览

structuremap - StructureMap 如何用于创建具有原始构造函数参数的对象的 setter 依赖项?

我有一个实现“ITestProperty”的对象“TestProperty”。“TestProperty”采用字符串构造函数参数。这是在 StructureMap 中使用类似于 CorDependency 或 WithCtorArg 的东西配置的。

我想将“ITestProperty”的一个实例(用“TestProperty”实现)作为属性注入另一个类。当我尝试运行代码时出现异常(StructureMap 错误代码 205,“缺少请求的实例属性”)。

这是重现问题的简化版本:

测试:

注册表设置:

测试对象:

当我们去初始化上面的“TestController”对象时,就会抛出异常。可以用 StructureMap 做到这一点吗?假设这是可能的,我需要做什么才能让它工作?

提前致谢。

0 投票
1 回答
423 浏览

asp.net-mvc-3 - 访问在基类的构造函数中使用属性注入定义的基类属性

我已经阅读了 ninject wiki 上的所有内容和许多帖子,但仍然不明白如何设置注入以便我可以引用此属性。我希望能够在基类构造函数中引用该属性,以便在创建任何控制器时最终设置一个通用的 ViewBag 属性。似乎实现 iInitializable 接口是正确的方法,但再次不确定如何执行此操作。另外,我选择不在基类构造函数中注入 IMyService 以简化派生类的编码。

我最近尝试的代码的简化版本:

0 投票
1 回答
853 浏览

castle-windsor - 温莎函数属性注入

使用 Windsor 2.5.2,以下工作:

要延迟创建 IBar,这也可以:

但是,如果我将属性注入与 结合使用Func<T>,则会导致空引用:

我怎样才能让温莎注入Func<IBar>

0 投票
2 回答
5385 浏览

dependency-injection - 如何使用 Autofac 2.4.5 处理循环引用?

关于循环引用的 autofac wiki 页面说要使用:

但看起来ActivatedHandler在 2.4.5 中不再存在。在源代码中挖掘,我找到了该类的实现,因此我将方法实现放在了 OnActivated 中。不幸的是,这仍然不起作用。

我在这里整理了一个最小的复制品,看起来就像 Wiki 页面上的内容。

尝试 Resolve 时,此代码仍会引发堆栈溢出异常。我错过了什么?让 Autofac 处理循环依赖的正确方法是什么?

0 投票
0 回答
778 浏览

dependency-injection - unity InjectionProperty 生成空属性

这里的各种帖子没有说明为什么每次我尝试在 Unity 2.0(4 月)中使用 InjectionProperty() 构造时,它都不会填充我解析的实例中的属性。它们始终为空。我可以在调试器中看到创建了对象,但是对应该注入的属性的第一个引用始终是空引用异常。我所做的事情肯定有一些根本性的错误。

任何帮助是极大的赞赏。

我在互联网上遍历了很多路径,以确定如何使用 Unity 进行属性注入,但我最终还是得到了一个实例化的对象,该对象带有一个应该被注入的空属性。所以它死了。

有几个问题:

1) 这些 PropertyInjector 对象在调试器中在哪里可见?没有多少采矿揭示了这些,所以我无法确定它们是否“准备好注入”。

2) 具有该属性的对象确实通过 Resolve 实例化,但它从未获得属性值(该属性是 ILog 对象)。

我束手无策,诚然,这可能是一根短绳,但这到底是怎么回事?任何见解。

这是代码:

我确实在几个位置看到似乎需要使用 [Dependency]
标记属性 ,而在其他地方表明这些标记将被代码中的InjectionProperty对象覆盖。讨论模棱两可。

我非常担心 Unity = DisUnity ,我什至可能会尝试使用它。