首先我们来看如何获得类型信息。 
        获得类型信息有两种方法,一种是得到实例对象 
        这个时侯我仅仅是得到这个实例对象,得到的方式也许是一个object的引用,也许是一个接口的引用,但是我并不知道它的确切类型,我需要了解,那么就可以通过调用System.Object上声明的方法GetType来获取实例对象的类型对象,比如在某个方法内,我需要判断传递进来的参数是否实现了某个接口,如果实现了,则调用该接口的一个方法: 
… 
public  void  Process(  object  processObj  ) 
{ 
Type  t  =  processsObj.GetType(); 
if(  t.GetInterface(“ITest”)  !=null  ) 
                    … 
} 
… 
复制代码 
另外一种获取类型的方法是通过Type.GetType以及Assembly.GetType方法,如: 
              Type  t  =  Type.GetType(“System.String”); 
        需要注意的是,前面我们讲到了命名空间和装配件的关系,要查找一个类,必须指定它所在的装配件,或者在已经获得的Assembly实例上面调用GetType。 
        本装配件中类型可以只写类型名称,另一个例外是mscorlib.dll,这个装配件中声明的类型也可以省略装配件名称(.Net装配件编译的时候,默认都引用了mscorlib.dll,除非在编译的时候明确指定不引用它),比如: 
          System.String是在mscorlib.dll中声明的,上面的Type  t  =  Type.GetType(“System.String”)是正确的 
          System.Data.DataTable是在System.Data.dll中声明的,那么: 
Type.GetType(“System.Data.DataTable”)就只能得到空引用。 
          必须: 
Type  t  =  Type.GetType("System.Data.DataTable,System.Data,Version=1.0.3300.0,  Culture=neutral,  PublicKeyToken=b77a5c561934e089"); |