反射获取特性类
- 获取要访问的类
- IsDefined()方法,System.Reflection反射命名空间下MemberInfo类下的方法IsDefined(typeof(特性类),bool),判断访问类是否有特性类,有的话true为进入
- GetCustomAttribute()方法,System.Reflection命名空间下CustomAttributeExtensions类下的方法 GetCustomAttribute(typeof(特性类名),bool),检查搜索特性类,如果有返回Attribute特性类
- GetCustomAttribute()方法相当于实例化对象,因为这一步触动了下图步骤,阅上可知,这是步调用了构造函数,(个人理解:根据访问类反向搜索修饰该类的特性类,然后触发实例)
- 注意的是,实例化对象是特性类
个人理解:根据被修饰类,被修饰方法,被修饰属性,被修饰字段,被修饰参数,被修饰返回值,反向搜索特性类
- Type类下的方法GetProperty,获取指定名称公共属性,返回反射命名空间下的PropertyInfo属性类
- Type类下的方法GetMethod,获取指定名称公共方法,返回反射命名空间下的MethodInfo方法类
- GetParameters方法,反射命名空间下MethodBase类的方法,获取对应方法(构造函数也是特殊的方法)的参数,因为参数是方法的,所以由方法引用,返回反射命名空间下的ParameterInfo类
- ReturnParameter方法是反射命名空间下的MethodInfo类下的方法,获取对应方法的返回类型的信息,因为返回值是方法的,所以由方法引用,返回反射命名空间下的ParameterInfo类
特性类作用:补充信息 和 补充行为
特性作用案例,看特性练习代码
拓展:
拓展方法:
静态类里面静态方法的第一个参数前+this
今天就分享到这里,敬请关注后面
初来乍到,请多多指教,大神勿喷。若有错误之处,欢迎指导