除非你自己swich去挨个类型判断,否则做不到.也不需要这样.
反射可以直接给变量赋值,也可以实例化类,并调用类里面的方法.不需要用一个具体的类型来接.

解决方案 »

  1.   

    Convert.ChangeType(obj,typeSomeClass);
      

  2.   

    除非你自己swich去挨个类型判断,否则做不到.也不需要这样.
    反射可以直接给变量赋值,也可以实例化类,并调用类里面的方法.不需要用一个具体的类型来接.因为变量obj其实也是通过某些反射,然后调用Invoke得到的返回值,所以需要类型转换。
    关键是要转换的类型也是通过反射得到的。
      

  3.   

    如果你的obj是中间结果,你需要通过obj将类实例化,完全可以用反射来实现,而不是先转类型如果你的obj是最终结果,那么应该是一个可以预见的类型,而不是某个类
    可以switch判断,然后拆箱
      

  4.   

    关键是为什么要类型转换,转换完又做什么.
    如果可以不用转换呢?
    不要拍脑袋想个方案,忘掉了最终的目的.
    转换完成是一个结构体,然后再通过反射访问里面的某些属性。如果不转换,针对Object反射不到这些属性的
      

  5.   

    反射调用方法:
    Type typeSomeClass = Type.GetType("SomeClass");
    MethodInfo MI=typeSomeClass.GetMethod("function1");
    object[ ] p=new object[]{1,"2",3.3};
    object obj=MI.Invork(this,p);
    obj是函数返回值
      

  6.   

    你应该想办法通过反射直接获取结构体里面的属性,而不是转换.
    否则还反射干嘛,直接写死不就得了.
    要反射,就每一步都反射,反射获取了类之后,又写一堆switch给转类型,那不如一开始就switch
      

  7.   

    感谢各位的解答。因为整个过程都是在反射,取值,然后再反射的结果里面再反射取值,所有的类型也是反射得到的。因为是编译的代码是在低版本的SDK是,而又要想能执行在高版本SDK的某些功能,编译不了的类型方法只有反射了。