我已经看过如何将字符串转换为类类型的示例,但是我无法将相同的逻辑应用于具有构造函数的类,该构造函数本身将字符串作为参数。这是我在其他帖子上看到的。
Type type = Type.GetType("classNameAsString");
object instance = Activator.CreateInstance(type);
我想要做的是将相同的内容应用于此案例
public class ExampleClass
{
public ExampleClass(string strParameter)
{
}
}
我通常将ExampleClass实例化为
var exClassInst = new ExampleClass("stringParam");
我如何实现同样的目标,但首先要转换" ExampleClass"要键入的字符串然后实例化它。谢谢你的帮助。
答案 0 :(得分:0)
你可以尝试找到构造函数并调用它。
ConstructorInfo ci = type.GetConstructor( BindingFlags.Instance | BindingFlags.Public, null, new Type[0], null );
return (ExampleClass)ci.Invoke( new Object[] { "stringParam" );
答案 1 :(得分:0)
你仍然可以使用Activator
但是使用CreateInstance
重载构造函数参数:
Type type = Type.GetType("Namespace.ExampleClass");
object instance = Activator.CreateInstance(type, "string param");
答案 2 :(得分:0)
Activator.CreateInstance
已经有以下overload:
使用构造函数创建指定类型的实例 最符合指定的参数。
public static object CreateInstance(
Type type,
params object[] args
)