网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

反射reflection的使用方法

这篇文章主要介绍“反射reflection的使用方法”,在日常操作中,相信很多人在反射reflection的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”反射reflection的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务永和,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

//反射
public static void Reflection()
{

            //调用非静态方法

            // 1.Load(命名空间名称),GetType(命名空间.类名)
            Type type = Assembly.Load("ConsoleApp").GetType("ConsoleApp.Program");//动态加载dll 并获取类型
            //2.GetMethod(需要调用的方法名称)
            MethodInfo method = type.GetMethod("GetReflect", new Type[] { typeof(string), typeof(int) });
            // 3.调用的实例化方法需要创建类型的一个实例
            object obj = Activator.CreateInstance(type);
            //4.方法需要传入的参数
            object[] parameters = new object[] { "xxx", 10 };
            // 5.调用方法
            string result = (string)method.Invoke(obj, parameters);

            //调用静态方法

            type.InvokeMember("GetReflect", System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Static |
            System.Reflection.BindingFlags.Public, null, null, new object[] { "sss", 15 });

            //获取方法名称

            MethodInfo[] info = typeof(Program).GetMethods();
            foreach (MethodInfo item in info)
            {
                Console.WriteLine(item.Name);
                var parames = item.GetParameters();
                foreach(var parame in parames)
                {
                    Console.WriteLine(parame.Name + "--" + parame.ParameterType.Name);
                }
            }

           //获取对象的属性及类型
            Type tt = typeof(User);
            var fields = tt.GetProperties();
            foreach (var item in fields)
            {
                Console.WriteLine(item.Name + ":" + item.GetValue(user, null) + ":" + item.PropertyType);
            }

            //获取对象的属性并赋值,调用类中的方法

            Type projectType = typeof(User);
            object projectInstance = Activator.CreateInstance(projectType);

            PropertyInfo propertyName = projectType.GetProperty("name");
            propertyName.SetValue(projectInstance, "小明");
            var projectName = propertyName.GetValue(projectInstance);

            PropertyInfo propertyAge = projectType.GetProperty("age");
            propertyAge.SetValue(projectInstance, 99, null);
            var projectAge = propertyAge.GetValue(projectInstance);

            Console.WriteLine("姓名:{0} 年龄:{1}", projectName, projectAge);

            MethodInfo method1 = projectType.GetMethod("GetReflect", new Type[] { typeof(string), typeof(int) });
            object[] parsArray = { "武大郎",55 };
            method1.Invoke(projectInstance, parsArray);

}

 public static string GetStaticReflect(string name, int age)
 {
            Console.WriteLine("反射执行了" + name + "今年" + age + "岁了");
            return name + "123";
 }

    public class User
    {
        public string name { get; set; }
        public int age { get; set; }

        public void GetReflect(string name, int age)
        {
            Console.WriteLine("User反射执行了" + name + "今年" + age + "岁了");
        }
    }

到此,关于“反射reflection的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章题目:反射reflection的使用方法
网站URL:http://bjjierui.cn/article/ijjcpp.html

其他资讯