测试代码如下
Type theMathType=Type.GetType("System.Math");
object theObj=Activator.CreateInstance(theMathType);
Type[] parameterTypes=new Type[1];
parameterTypes[0]=Type.GetType("System.Double");
MethodInfo CosinInfo=theMathType.GetMethod("Cos",parameterTypes);
object[] parameters=new object[1];
parameters[0]=45;
object result=CosinInfo.Invoke(theObj,parameters);
Console.WriteLine(result.ToString());
运行是停在第二句,提示没有为该对象定义无参数的构造函数System.Math是系统中定义的完全静态的类,没有构造函数,其中的方法也都为静态方法

解决方案 »

  1.   

    如果触发静态方法,可以参看
    http://blog.csdn.net/knight94/archive/2006/04/10/657527.aspx
      

  2.   

    行了,自己解决了由于调用的System.Math是一个完全静态的类,即使实例化也不能调用其中的静态方法,所以将代码改变为下面的情况即可
    Type theMathType=Type.GetType("System.Math");
    Type[] parameterTypes=new Type[1];
    parameterTypes[0]=Type.GetType("System.Double");
    MethodInfo CosinInfo=theMathType.GetMethod("Cos",parameterTypes);
    Object[] parameters=new Object[1];
    parameters[0]=45;
    Object result=CosinInfo.Invoke(null,parameters);
    Console.WriteLine(result.ToString());