鉴于以下配置
Container.Register(Component.For<A>().Named("foo"));
Container.Register(Component.For<B>().Named("foobar"));
Container.Register(
AllTypes.Pick()
.FromAssemblyNamed("MyAssembly")
.If(t => t.Name.EndsWith("ABC"))
.Configure(c => c.LifeStyle.Is(LifestyleType.Transient))
.WithService.Select(i => typeof(I))
);
Container.Register(
AllTypes.Pick()
.FromAssemblyNamed("MyAssembly")
.If(t => t.Name.EndsWith("123"))
.Configure(c => c.LifeStyle.Is(LifestyleType.Transient))
.WithService.Select(i => typeof(I))
);
如果我知道接口“I”公开了一个属性“P”,并且类 A 和 B 可以分配给 P;我如何明确声明来自 AllTypes 调用的第一个类型集合应该将属性 P 设置为 id 为“foo”的类型,而第二个集合应该将相同的属性设置为 id 为“foobar”的类型“?
使用 XML 配置,这可以通过使用 ${id} 符号显式设置参数来完成。我认为它在流畅的 API 中是相似的。
谢谢。