C# 反射(Reflection)使用讲解之 - 读取设置字段、属性值(四)
小白浏览:4872022-08-31 11:39:05本文累计收益:0我也要赚钱

最近学习C#基础,简单记录一下C#中如何使用反射创建对象,并调用方法。

使用反射必须添加System.Reflection引用。

一、类代码
namespace DB.MySql
{
    public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age;
        public void Test() {
            Console.WriteLine($"id:{Id},Name:{Name},Age:{Age}");
        }
    }
}
二、反射代码
namespace ConsoleTest
{
    public class test4
    {
        public void Show()
        {
            Student student = new Student()
            {
                Id = 1,
                Name = "测试学生"
            };
            //通过放射操作字段及属性
            Assembly assembly = Assembly.LoadFrom("DB.MySql.dll");//获取DLL
            Type type = assembly.GetType("DB.MySql.Student");//获取类型
            object testClass = Activator.CreateInstance(type);//创建实例
            //获取属性值
            foreach (var prop in type.GetProperties())
            {
                Console.WriteLine($"{prop.PropertyType}+{prop.Name}={prop.GetValue(student)}");
            }
            //设置属性值
            foreach (var prop in type.GetProperties())
            {
                if (prop.Name.Equals("Id"))
                {
                    prop.SetValue(student, 123);
                }
                if (prop.Name.Equals("Name"))
                {
                    prop.SetValue(student, "学生1");
                }
                //输出测试
                Console.WriteLine($"{prop.PropertyType}+{prop.Name}={prop.GetValue(student)}");
            }
        }
    }
}
三、输出结果

 

评论列表
发表评论
+ 关注