【发布时间】:2026-02-24 14:45:01
【问题描述】:
鉴于此
Component.For<IService>().ImplementedBy<SecretService>().Named("secretService")
Component.For<IService>().ImplementedBy<PublicService>().Named("publicService")
和
class Foo{
public Foo(IService publicService){ ...... }
}
和
class Bar{
public Bar(IService secretService){ ...... }
}
那我该如何实现以下
Foo 和 Bar 应该分别获取 publicService 和 secretService 的实例,完全基于它们的构造函数参数的名称。
【问题讨论】:
-
那么你的问题是什么?它不工作吗?你看到了什么?您尝试过什么让它发挥作用?
-
对不起,我的问题是“如何实现要求”。我现在已经解决了。谢谢
-
看看Dependency Injection Unity - Conditional Resolving。请注意,此答案适用于任何 DI 容器,而不仅仅是 Unity。还有策略模式here 和here 的其他示例。
标签: inversion-of-control castle-windsor ioc-container dependency-inversion