问题标签 [constructor-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 投票
2 回答
1838 浏览

mvvm - Unity/Caliburn Micro,多参数注入构造器

我目前正在尝试学习如何使用 Unity 和 Caliburn Micro 实现 MVVM。在其他地方寻找帮助后,我仍然不确定如何正确设置构造函数注入。我不知道这是否由于我缺乏 MVVM 或其他方面的专业知识而不起作用。

我的问题是我想将两个 IScreen 对象传递到我的主窗口(shell)类中,当用户单击按钮时可以在它们之间导航。这是我的 MainWindowViewModel 类中构造函数的代码:

这是我在 Bootstrapper(Unity) 类中使用的代码:

当它运行时,MainWindowViewModel 接收到 StringsViewModel 的两个实例。虽然如果我要在声明中输入一个键:

然后它传入两个 CampaignsViewModel 实例。我不知道如何向 InjectionConstructor 指定我希望它在 CampaignViewModel 和 StringsViewModel 的一个实例中传递。我感觉它可能与 GetInstance 方法有关,但我不确定。

任何帮助将不胜感激!

谢谢。

0 投票
2 回答
469 浏览

.net - 构造函数注入 - 在哪里调用?

我对构造函数注入模式和规则有点困惑不要调用容器;它会打电话给你

有人可以向我(也许还有其他人)解释一下,真正的应用程序应该如何使用构造函数注入来获得所有 DI 优势?我给出了一些简单的,我认为常见的例子:

关系很明显(我认为)-RepositoryObject 需要 DaoObject,DomainObject 需要 Repository。

使用构造函数注入我假设我可以(在大多数情况下)忘记 NEW 关键字,但是我应该何时、何地以及如何创建新对象(主要是域)?我必须为所有课程编写工厂吗?我应该参考那个工厂的DI Container吗?

最好的情况是有人向我展示一些真实的应用程序示例(请不要使用 Asp.Net MVC :))或绘制一些项目结构。

0 投票
2 回答
1817 浏览

c# - StructureMap:选择嵌套依赖的具体类型

计算器:

计算器策略:

计算器用途:

结构图注册表:

对于 CalculatorUsageOne 我想添加数字(使用AdditionCalculator)。对于 CalculatorUsageTwo 我想将数字相乘(使用MultiplyCalculator)。

如何使用 StructureMap 实现这一目标?

0 投票
1 回答
2234 浏览

c# - Unity:具有多个构造函数的构造函数注入

我正在尝试使用 Unity 构造函数注入来注入 EF ObjectContext。我的尝试是像这样在引导程序中注册类型:

EF 创建多个构造函数,如下所示

在调试我的代码时,Unity 会抛出一个 ResolutionFailedException,告诉我“MyObjectContext 类型有多个长度为 1 的构造函数。无法消除歧义。” 在解析具有以下构造函数的新类时。

据我所知,使用RegisterTypewithnew InjectionConstructor()作为参数可确保调用默认的无参数构造函数(这就是我想要的)。为什么 Unity 不能按预期解析类型?我想念什么吗?

此致

周杰伦

0 投票
0 回答
747 浏览

castle-windsor - 如何让温莎城堡工厂设施创建的实例仍然具有构造函数注入?

我对工厂设施有点陌生,所以如果我做的很愚蠢,请多多包涵。这是我的容器注册:

然后我从工厂解决(我构建了很多从配置中读取的内容,因此通过文本字符串创建)

(例如)

我感到困惑的是:如果我尝试为所有计算对象提供一个像这样的基本实例:

并像这样导出

然后 CW 抱怨缺少默认构造函数。

问题:当我使用工厂构建 calc 对象时,如何设置工厂设施以允许 EventAggregator 实例的注入(自动)?

提前致谢。


编辑:这是我的 CustomTypedFactoryComponentSelector:

}

编辑:继承事件聚合器。没什么特别的。

界面

和 ctor

0 投票
1 回答
938 浏览

c# - Ninject 多重注入并不像我想象的那么贪婪!怎么会?

如果我有一个为多注入设置的 ctor 类,如下所示:

绑定设置如下:

那么我会期望幕府将军在建造时注入两种武器?但事实并非如此——它只会得到匕首。

如果我像这样添加进一步的绑定:

然后幕府将军得到匕首和手里剑。WhenInjectedInto<T>()看起来它应该只限制它所应用的绑定而不影响其他绑定。我发现这种行为非常具有误导性。

有人可以解释这里发生了什么吗?

0 投票
2 回答
15177 浏览

java - Springframework 构造函数-arg

我有一个 MainClass 有 2 个变量。我想将这两个值传递给 springframework bean 类“Test”。如何在 applicationContext.xml 中定义它,以及如何将这两个变量值传递给 bean“Test”。

前任:

------------ 测试类 ------------

------------- applicationContext.xml -------------

0 投票
4 回答
20543 浏览

java - EasyMock:在 java 中模拟构造函数调用

我在这个板上看过类似的问题,但没有一个回答我的问题。这听起来很奇怪,但是否可以模拟出对您正在模拟的对象的构造函数调用。

例子:

我怎么能期待构造函数调用?我可以更改 Customer 构造函数调用以使用 newInstance,但我不确定这是否会有所帮助。我无法控制new Customer(145)构造函数的主体的作用。

这可能吗?

0 投票
1 回答
138 浏览

.net - 有没有办法提示 Unity 应该使用哪个构造函数?

InjectionConstructor当您需要调用特定的构造函数时,Unity可以很好地工作,因为您需要考虑非常特定的依赖项(例如,外部依赖项、命名注册或未命名注册的任何混合),但它需要指定所有参数。

是否有某种方法可以将 Unity 的“查找并使用具有最多参数的构造函数”与“查找并使用具有最多参数且可以接受IX签名中某处的实例的构造函数”进行扩充?

0 投票
5 回答
1243 浏览

c# - 具有值类型和对象类型依赖关系的 IoC

我正在寻找有关为 IoC 设计对象的最佳方法的建议

假设我有一个对象(服务),它依赖于用 Ioc 注册的 DataContext。

但它也需要一个名称属性,我可以这样设计对象:

问题是与 Ioc 容器一起使用变得非常复杂,因为名称等字符串对象不容易注册,并且 Ioc 容器的使用变得复杂:因此解析变得混乱:

另一种方法是将其设计如下:

解决方案现在更容易了:

唯一的下站点是不再需要指定名称。我想听听 DI 或 IoC 专家的意见,他们将如何设计这个并且仍然对具体的 Ioc 容器技术保持相当不可知论。

我知道这在很大程度上取决于你想如何使用它,如果 name 真的是可选的,选项 2 将是完美的。但是在需要名称的情况下,您可以在代码中的另一点添加验证步骤,而是进行设计以使 Ioc 更简单。

想法?