关于System.Reflection.MethodInfo的Invoke(object obj,obect[] parameters)的方法
1.得到一条记录(一个实体对象)或者单个结果(如int,bool),这样即使要查询的记录不存在,Invoke方法返回null
2.得到多记录,如分页,获取第100页,其实100页没数据,这样的情况下Invoke方法就报错。
3.当方法接收的是个实体对象时候,该以什么方法设置该参数。高手帮忙解决下,可再开帖100分

解决方案 »

  1.   

    前提是:得到多条记录时
    怎么解决当调用
    System.Reflection.MethodInfo的Invoke(object obj,obect[] parameters)
    方法时报错的原因。
    为什么不时候返回NULL。而是报错。。
    我测试过当查询一条记录的时候,如果不存在就返回NULL,否则就是返回记录。
      

  2.   

    //from msdn
    public Object Invoke (Object obj,Object[] parameters)
    参数
    obj
    对其调用方法或构造函数的对象。如果方法是静态的,则忽略此参数。如果构造函数是静态的,则此参数必须为空引用或定义该构造函数的类的实例。 parameters
    调用的方法或构造函数的参数列表。这是一个对象数组,这些对象与要调用的方法或构造函数的参数具有相同的数量、顺序和类型。如果没有任何参数,则 parameters 应为空引用。
    如果此实例所表示的方法或构造函数采用 ref 参数,使用此函数调用该方法或构造函数时,该参数不需要任何特殊属性。如果数组中的对象未用值来显式初始化,则该对象将包含该对象类型的默认值。对于引用类型的元素,该值为 空引用。对于值类型的元素,该值为 0、0.0 或 false,具体取决于特定的元素类型。 
    返回值
    一个对象,包含被调用方法的返回值,如果调用的是构造函数,则为空引用(null)。 
      

  3.   

    例子:using System;
    using System.Reflection;public class MagicClass
    {
        private int magicBaseValue;    public MagicClass()
        {
            magicBaseValue = 9;
        }    public int ItsMagic(int preMagic)
        {
            return preMagic * magicBaseValue;
        }
    }public class TestMethodInfo
    {
        public static void Main()
        {
            // Get the constructor and create an instance of MagicClass        Type magicType = Type.GetType("MagicClass");
            ConstructorInfo magicConstructor = magicType.GetConstructor(Type.EmptyTypes);
            object magicClassObject = magicConstructor.Invoke(new object[]{});        // Get the ItsMagic method and invoke with a parameter value of 100        MethodInfo magicMethod = magicType.GetMethod("ItsMagic");
            object magicValue = magicMethod.Invoke(magicClassObject, new object[]{100});        Console.WriteLine("MethodInfo.Invoke() Example\n");
            Console.WriteLine("MagicClass.ItsMagic() returned: {0}", magicValue);
        }
    }
      

  4.   

    你们提供的都是已存在的类。。然后通过反射得到该类。这样肯定没问题。
    我是想 
    string Lei = "User";
    string name = "aspnet";
    string mima = "sa";
    就是这样的字符串  通过某些方式 变成 USER类 该类的那个属性就是  name和mima 值为 aspnet和sa
    本身不存在USER类。。