第一种方式
Type t = Type.GetType(“类A”);
I_接口A i = t.GetInterface("I_I_接口A") as I_接口A;第二种方式
return Assembly.Load(DALNameSpace).CreateInstance(“类A”) as I_接口A;请问下,这2中反射的方式有什么不同??
性能,和反射的结果上面会有什么不同吗???

解决方案 »

  1.   

    改正一下
    I_I_接口A  改成  I_接口A  
      

  2.   


    关键是你这个实例没有用对地方。如果你预先可以硬编码“I_接口A”,就像第二个,你何必还要反射出“I_接口A”?第一个也是这个毛病,而且更严重。你这两种反射都太没有反射的道理了。一个东西有不同的得到的方式,我认为没有太技术化,不必过早地较真于哪一个方式。要先搞清楚为什么要用这个东西更重要。
      

  3.   

    通过接口来返回反射得到的对象不是没有意义的,也是很常用的。
    至于lz的问题,第一种写法本身是错误的,Type.GetInterface得到的是一个元数据(InterfaceInfo?),而不是对象本身。
      

  4.   


    这个用反射是正确的。
    像Spring等IOC容器通过配置文件加载也是类似的方式。