【发布时间】:2010-05-22 15:17:47
【问题描述】:
给定注册服务:
builder.RegisterType<Foo1>().Named<IFoo>("one").As<IFoo>();
builder.RegisterType<Foo2>().Named<IFoo>("two").As<IFoo>();
builder.RegisterType<Foo3>().Named<IFoo>("three").As<IFoo>();
我可以通过注入Func<string, IFoo> 之类的东西来检索IFoo 接口的命名实现吗?
public class SomeClass(Func<string, IFoo> foo) {
var f = foo("one");
Debug.Assert(f is Foo1);
var g = foo("two");
Debug.Assert(g is Foo2);
var h = foo("three");
Debug.Assert(h is Foo3);
}
我知道我可以用 Meta<> 做到这一点,但我不想使用它。
【问题讨论】:
标签: c# .net dependency-injection ioc-container autofac