是否有流利的方式撰写以下内容:
var someTypes = GetType()
.Assembly
.GetTypes()
.Where(x => someFilter == true);
foreach(var someType in someTypes)
{
var genericInterface = typeof(IFoo<>).MakeGenericType(someType);
var genericImplementation = typeof(Foo<>).MakeGenericType(someType);
container.Register(
Component.For(genericInterface)
.ImplementedBy(genericImplementation));
}
答案 0 :(得分:3)
IGenericServiceStrategy
就是你所追求的(除了@maxlego所说的,这是正确的)
See this了解详情和示例。
答案 1 :(得分:2)
以下应该
container.Register(
Component.For(typeof(IFoo<>))
.ImplementedBy(typeof(Foo<>))
);