反射

1.获取 类型信息的方法

    SportsCar sc = new SportsCar();

    Type t = sc.GetType(); 

  或

    Type t = typeof(SportsCar);

  typeof:不需要先建立一个实例来提取类型信息,但必须指定类型的编译时信息,因为,typeof需要的是强类型的类型信息;


2. System.Type.GetType()得到Type引用

     System.Type.GetType("类型的完全限定名"):可以接受任何字符串(而不是强类型的变量);

    GetType()重载方法GetType(class,bool1 , bool2)

       class:类型的完全限定名;

         1.当前程序集中类型信息:直接指定类型字符串;

          2.外部私有的程序集的类型信息:必须使用类型完全限定名和程序集名称(每个都用都好隔开);

          3.获取嵌套类型:类型字符串指定一个 + 标记;

       bool1:控制当类型找不到时是否抛出异常(布尔类型);

       bool2:指示是否区分字符串大小写(布尔类型);

        示例如下:

             A.获取程序集内类型信息:  Type t = Type.GetType("CarLibrary.SportsCar",false,true);

             B.获取外部私有的程序集的类型信息:Type t = Type.GetType("CarLibrary.SportsCar ,CarLibrary",false,true);

             C.获取嵌套类型:Type t = Type.GetType("CarLibrary.SportsCar +SpyOptions",false,true);

       4. BindingFlags枚举值得重载,可以对要搜索的内容进行较大的控制(如:只搜索静态成员或只搜索公共成员等);

3.反射

    3.1.命名空间:System.Reflection;

    3.2.System.Reflection命名空间成员列表:

                    Assembly:该抽象类包含了许多静态方法,通过它可以加载、了解和操纵一个程序集;

            AssemblyName:使用该类可以找到大量隐藏在程序集的身份中的细节(版本信息、区域信息等);

                      EventInfo:该抽象类保存给定事件的信息;

                       FieldInfo:该抽象类包含给定字段信息;

                  MemberInfo:该类是抽象类的基类,它为EventInfo、FieldInfo、MethodInfo和 PropertyInfo类型定义了公共的行为;

                   MethodInfo:该抽象类包含给定方法的信息;

                        Module:该抽象类使你可以访问多文件程序集中的给定模块;

             ParameterInfo:该类保存给定参数的信息;

                PropertyInfo:该抽象类保存给定属性信息;

 4.反射泛型类型:

    4.1获取泛型类型的元数据,必须使用包含“反勾号”(`)加上数字值的语法来表示类型支持的类型参数个数;

       例如:输出System.Collections.Generic.List<T>元数据描述

                    System.Collections.Generic.List`1

                表示:输出List集合中指定一个类型参数;

       例如:输出Dictionary<TKey,TValue> 字典,需要两个类型参数:

               System.Collections.Generic.Dictionary`2



5.反射获取程序集(没看完--456)

6.反射共享程序集(没看完--457)

      

     

   



   

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值