Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }