反射描述了在运行过程中检查和处理程序元素的功能。
首先先了解下特性:
class Program { private string myName; /// <summary> /// 第一个参数传给构造函数,后面参数都是属性或者字段 /// </summary> [myFieldName("jiangzhen",A="abc")] public string MyName { get { return myName; } } static void Main(string[] args) { Program p = new Program(); } } /// <summary> /// AttributeUsage是一个元特性(因为它只能应用于其他特性上) /// </summary> /// AllowMultiple表示是否可以将特性多次应用到一个元素上 /// inherited表示特性应用类的子类也起作用 [AttributeUsage(AttributeTargets.Property|AttributeTargets.Field , AllowMultiple = false, Inherited = false)] public class myFieldNameAttribute : Attribute { private string name; public myFieldNameAttribute(string name) { this.name = name; } public string A; }
稍微了解了一些反射原理,为插件尝试做准备,先占个位置回头研究。