C# 我可以使用类名为字符串的Autofac.IContainer.Resolve吗

C# 我可以使用类名为字符串的Autofac.IContainer.Resolve吗,c#,C#,我想使用AutoFac.IContainer获得如下所示的类实例 public void functionName(string classNameString) { var someVariable = ContainerManager.IContainer.Resolve<"classNameString">(); } public void functionName(字符串classNameString) { var someVariable=ContainerManager

我想使用AutoFac.IContainer获得如下所示的类实例

public void functionName(string classNameString)
{
var someVariable = ContainerManager.IContainer.Resolve<"classNameString">();
}
public void functionName(字符串classNameString)
{
var someVariable=ContainerManager.IContainer.Resolve();
}
问题是我这里没有类型,我把类名作为字符串参数。我试图获取类型并在Resolve中使用它,但它不起作用,错误是“t是一个变量并用作类型”

Type t=Type.GetType(className);
var someVariable=Autofac.IContainer.Resolve();
我甚至不确定这是否可能


提前感谢。

您应该将其注册为。如果没有任何类型信息,可以将其注册为对象:

builder.RegisterType<YourClass>().Named<object>(nameof(YourClass))

你应该把它注册为一个。如果没有任何类型信息,可以将其注册为对象:

builder.RegisterType<YourClass>().Named<object>(nameof(YourClass))

谢谢你的回复,我正在尝试你提出的解决方案。我面临这个问题,因为container.ResolveNamed(“classNameString”);返回对象类的对象。如何将其强制转换为MyClass类型,以便调用MyClass的函数。是否尝试了第二种解析方法?类型为[…]时?感谢您的回复,我正在尝试您提出的解决方案。我面临这个问题,因为container.ResolveNamed(“classNameString”);返回对象类的对象。如何将其强制转换为MyClass类型,以便调用MyClass的函数。是否尝试了第二种解析方法?类型为[…]的?
container.ResolveNamed<object>("classNameString");
Type type = Type.GetType(className);
var resolved = container.Resolve(type);