标签:style blog color io 使用 ar 数据 div sp
自定义特性允许把自定义元数据与程序元素关联起来
.NET Framework允许用户定义自己的特性
编译器不能识别,但是特性应用于程序元素时,可以在编译好的程序集中用作元数据
示例:
public string SocialSecurityNumber { get{ //etc.
特性类本身用一个特性 ----System.AttributeUsage特性来标记
AttributeUsage主要用于标识自定义特性可以应用到哪些类型的程序元素上
这些信息由它的第一个参数给出,该参数必选,类型是枚举类型AttributeTargets
其成员如下:
All
Assembly
Class
Constructor
Delegate
Enum
Event
Field
GenericParameter
Interface
Method
Module
Parameter
Property
ReturnValue
Struct
特性应用到整个程序集或模块中,Assembly和Module
示例:
[assembly:SomeAssemblyAttribute(Parameters)]
[module:SomeAssemblyAttribute(Parameters)]
反射
Type实际上是一个抽象基类
获取指向任何给定类型的Type引用有3种常用方式:
a.使用C#的typeof运算符
Typet = typeof(double);
b.使用GetType()方法,所有类都从System.Object继承这个方法
double d = 10; Type t = d.GetType();
c.调用Type类的静态方法GetType()
Type t = Type.GetType("System.Double");
Type是许多反射功能的入口
Type属性:
Name 数据类型名
FullName 数据类型的完全限定名(包括名称空间)
Namespace 在其中定义数据类型的名称空间名
BaseType 该Type的直接基本类型
UnderlyingSystemType 该Type在.NET运行库中映射到的类型
Type成员方法:
//返回对象类型 //方法 ConstructorInfo GetConstructor()、GetConstructors() EventInfo GetEvent()、GetEvents() FieldInfo GetField()、GetFields() InterfaceInfo GetInterface()、GetInterfaces() MemberInfo GetMember()、GetMembers() MethodInfo GetMethod()、GetMethods() PropertyInfo GetProperty()、GetProperties()
Assembly类在System.Reflection名称空间中定义,它允许访问给定程序集的元数据,它也包含可以加载和执行程序集的方法。
加载程序集,示例:
Assembly assembly1 = Assembly.Load("SomeAssembly"); Assembly assembly2 = Assembly.LoadFrom(@"C:\My Projects\Software\SomeOtherAssembly");
获得在相应程序集中定义的所有类型的详细信息,调用Assembly.GetType()方法
查找自定义特性,GetCustomAttribute()
标签:style blog color io 使用 ar 数据 div sp
原文地址:http://www.cnblogs.com/bmbh/p/3979346.html