注意:
需要通过反射注入的字段设置的属性名字必须和放射注入的类的标记属性名字一样,才能实现
AttributeUsage:
在定义您自己的特性类时,可以控制使用通过将放置在其中的方式AttributeUsageAttribute对特性类。 指示的特性类必须派生自Attribute,直接或间接。
特性类具有位置和命名参数。 为属性类每个公共构造函数定义的类的位置参数是有效的序列。 命名的参数由的非静态、 公共和读写字段或属性的特性类定义。
AttributeTargets:Class :(int 4)可以对类应用属性。
Field: (int 256)可以对字段应用属性。
Assembly.GetExecutingAssembly:
获取包含当前执行的代码的程序集。
MemberInfo.GetCustomAttributes(ParameterInfo, Type, Boolean) :
检索应用于方法参数的自定义属性的数组。 参数指定方法参数、要搜索的自定义属性的类型以及是否搜索方法参数的祖先。
参数:
Type : attributeType
要搜索的自定义属性的类型或基类型。
Boolean : inherit
如果为 true,则指定还在 element 的祖先中搜索自定义属性。
Type .GetFields(BindingFlags) :
当在派生类中重写时,使用指定绑定约束,搜索为当前 Type 定义的字段。
BindingFlags :bindingAttr
一个位屏蔽,由一个或多个指定搜索执行方式的 BindingFlags 组成。 或 零,以返回 null。
BindingFlags :指定控制绑定以及通过反射执行成员和类型搜索的方式的标记。
Public 16
指定公共成员要包括在搜索中。
NonPublic 32
指定非公共成员要包括在搜索中。
Instance 4
指定实例成员要包括在搜索中。
FieldInfo.SetValue(Object, Object) :设置给定对象支持的字段的值。
参数:
Object :obj
将设置其字段值的对象。
Object :value
要分配给字段的值。