如何使用Autofac将基于类型的依赖关系解析为字符串

时间:2017-04-05 00:25:29

标签: c# autofac

我有一个通用界面,比如IGeneric,我想根据string的类型动态解析。为了更清楚,我可以解决这样的依赖:

container.Resolve<IGeneric<AType>>();

但我的问题是如何解决这个问题:

var type = "AType";

除了(更好)注册可用于代替AType作为命名实例的每个可能的类之外,还有什么办法吗?

1 个答案:

答案 0 :(得分:1)

使用接受Type。{/ p>的Resolve原型

Type type = System.Type.GetType("AType");
var instance = container.Resolve(type);

或者(不确定您想要哪一个)解析IGeneric<Atype>使用:

Type genericType = typeof(IGeneric<>);
Type specificType = genericType.MakeGenericType(new [] {Type.GetType("AType")});
var instance = container.Resolve(specificType );