static void Main(string[] args) { System.Reflection.MemberInfo info = typeof(Entity); //显示附加到类 Entity 上的自定义特性 object[] objs = info.GetCustomAttributes(true); foreach (var obj in objs) { Console.WriteLine(obj); } Entity entity = new Entity("hhm"); Type type = entity.GetType(); foreach (MethodInfo m in type.GetMethods()) { foreach (Attribute a in m.GetCustomAttributes(typeof(FildAttribute), false)) { FildAttribute fild = (FildAttribute)a; if (null != fild) { //fild.F_Name是attribute设置的名字,m.Name是函数的名字 Console.WriteLine("fild.F_Name{0},Name{1}", fild.F_Name, m.Name); Console.WriteLine(fild.F_Style); } } } Console.ReadKey(); }
static void Main(string[] args) { string key = "fun4"; Entity entity = new Entity("hhm"); Type type = entity.GetType(); Object o = System.Activator.CreateInstance(type); foreach (MethodInfo m in type.GetMethods()) { foreach (Attribute a in m.GetCustomAttributes(typeof(FildAttribute), false)) { FildAttribute fild = (FildAttribute)a; if (null != fild) { //m所代表的是Entity的方法的返回值类型与名字,参数 //Console.WriteLine(m); //fild.F_Name是attribute设置的名字,m.Name是函数的名字 // Console.WriteLine("fild.F_Name{0},Name{1}", fild.F_Name, m.Name); // Console.WriteLine(fild.F_Style); if (key.Equals(m.Name)) { Console.WriteLine("OK {0}", m); //借助实例0运行。如果是静态方法可以改成null m.Invoke(o, new object[] { "Tina" }); } } } } Console.ReadKey(); }