反射描述了在运行过程中检查和处理程序元素的功能。
首先先了解下特性:
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;
}稍微了解了一些反射原理,为插件尝试做准备,先占个位置回头研究。
浙公网安备 33010602011771号