我想使用AutoFac.IContainer
获取如下所示的类的实例public void functionName(string classNameString)
{
var someVariable = ContainerManager.IContainer.Resolve<"classNameString">();
}
问题是我没有在这里输入,我将类名作为字符串参数。我尝试获取类型并在Resolve中使用它但它不起作用,得到错误&#34; t是一个变量并用作类型&#34;。
Type t = Type.GetType(className);
var someVariable = Autofac.IContainer.Resolve < t > ();
我不确定它是否可能。
提前致谢。
答案 0 :(得分:2)
您应将其注册为named instance。如果您没有任何类型信息,可以将其注册为对象:
builder.RegisterType<YourClass>().Named<object>(nameof(YourClass))
然后解决它你会做:
container.ResolveNamed<object>("classNameString");
如果您有类型信息,则首先不需要将其注册为名称:
Type type = Type.GetType(className);
var resolved = container.Resolve(type);