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表达式?
您可以使用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)
| 归档时间: |
|
| 查看次数: |
1254 次 |
| 最近记录: |