如何将字符串值传递给表达式?

use*_*872 0 c#

public void Invoke(string methodname)
{
    string funcname=methodname.Split('.')[1];

    //funcname contains the value of CustomerController
    Type type = typeof(funcname);

    MethodInfo method = type.GetMethod(funcname);
    CustomerController c = new CustomerController();
    string result = (string)method.Invoke(c, null);
}
Run Code Online (Sandbox Code Playgroud)

在这里我需要将一个字符串值传递给typeof一个类名的表达式.但我得到编译时错误.在上面的代码中

Type type = typeof(funcname);
Run Code Online (Sandbox Code Playgroud)

这里funcname包含值"CustomerController".如果我用下面的行替换它,它工作正常.

Type type = typeof(CustomerController);
Run Code Online (Sandbox Code Playgroud)

如何将字符串值传递给typeof表达式?

Meh*_*taş 5

您可以使用Type.GetType

Type.GetType(className);
Run Code Online (Sandbox Code Playgroud)

你必须提供完整的班级名称.如果在另一个程序集中定义了类,则还需要指定该程序集名称的名称.

Type.GetType("Name.Space.ClassName");
Type.GetType("Name.Space.ClassName, OtherAssemblyName");
Run Code Online (Sandbox Code Playgroud)

如果它是嵌套类,您可以使用a指定其名称 +

Type.GetType("Name.Space.ClassName+NestedClassName, OtherAssemblyName");
Run Code Online (Sandbox Code Playgroud)