c# – 在编译时不知道类型的情况下解析Windsor的通用接口?

有了温莎,我可以这样做:

var validators = container.ResolveAll<IEntityValidator<Product>>();

但我不知道编译时的类型.我需要更像这样的代码:

var type = obj.GetType();
var validators = container.ResolveAll<IEntityValidator<...type...>>();

显然,上面的代码并不接近正确的解决方案.我猜测需要一些完美的魔法.如果与温莎完全一致的话.是吗?

最佳答案
这可能不完全,但它可能接近你想要做的事情:

var typeParam = obj.GetType();
var type = typeof(IEntityValidator<>).MakeGenericType(typeParam);
container.Resolve(type);

转载注明原文:c# – 在编译时不知道类型的情况下解析Windsor的通用接口? - 代码日志