C#将字符串转换为具有带字符串参数的构造函数的类

时间:2016-04-22 21:56:50

标签: c# types

我已经看过如何将字符串转换为类类型的示例,但是我无法将相同的逻辑应用于具有构造函数的类,该构造函数本身将字符串作为参数。这是我在其他帖子上看到的。

Type type = Type.GetType("classNameAsString");
object instance = Activator.CreateInstance(type);

我想要做的是将相同的内容应用于此案例

public class ExampleClass
{
    public ExampleClass(string strParameter)
    {
    }
}

我通常将ExampleClass实例化为

var exClassInst = new ExampleClass("stringParam");

我如何实现同样的目标,但首先要转换" ExampleClass"要键入的字符串然后实例化它。谢谢你的帮助。

3 个答案:

答案 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
)