比如:Type typeUser = typeof(User);
PropertyInfo piFieldName = typeUser.GetProperty(strFieldName);object o1=Convert.ChangeType(piFieldName.GetValue(typeUser, null), piFieldName.GetType());返回的还是object。有什么办法可以获得  User 这个类型的 这个字段类型的值 

解决方案 »

  1.   

    编程语言里头,类型跟对象之间有个早绑定 和 晚绑定的区分在你写程序时指定类型的对象,
    那么你编写的代码, 在编译时已然知道对象有那些属性,方法可用,
    就是基于声明的类型来定夺的.这类在编译时刻决定的 就是早绑定, 其实对象还是一坨 object,
    只不过在编译时刻执行路线已经确定了.稍微向晚绑定过渡的是虚拟函数的引入,
    持有基类对象的应用在访问虚拟属性, 调用虚拟函数时,
    引入了一个类似桩子的东西, 不过仗义类型系统还是有章可循的.反射一来, 你完全走到镜子的另一面, 所有的东西都是一坨一坨的,
    要用他们, 你得先查字典, 查查某个对象到底是个什么货色,
    才使用他.你需要提前声明出具体类型的量来, 
    反射得到的对象赋值给他,
    那么后面使用那个量的地方就能保证是强类型的了.不过这又是何必, 什么情况会有这个需求呢?
      

  2.   

    我想通过一个List<CriteriaCell>列表保存And关系的查询条件CriteriaCell里有成员 字段名 FieldName
    运算符 Operation (< > == StartWith 等等)
    值 Value因为界面获得的 a.ID==b等  不是控件里的值就是 get/post 的参数
    都是字符串我考虑业务层写一个FetchSomething(List<CriteriaCell> listC ,PagerInfo pi,SortInfo si)甚至 FetchSomething(SomeKindOfCriteriaTree c ,PagerInfo pi,SortInfo si)想先做成反射再利用其他方式提升反射的性能。上述的是一个问题还有一个问题是  如果多表查找 需要 不同表之间字段参与查询条件运算
    的怎么处理?比如 筛出 所有 在用户生日过后2个月内 下的订单......