利用反射操作类属性字段

  • 加载DLL文件

      Assembly assembly2 = Assembly.LoadFrom("SqlServerDB.dll");
    
  • 获取指定类型

     Type type2 = assembly2.GetType("SqlServerDB.PropertyClass");
    
  • 调用泛型方法

     object obj = Activator.CreateInstance(type2);
                foreach (var property in type2.GetProperties())
                {
                    Console.WriteLine(property.Name);
                    //给属性设置值
                    if (property.Name.Equals("Id"))
                    {
                        property.SetValue(obj, 1);
                    }
                    else if (property.Name.Equals("Name"))
                    {
                        property.SetValue(obj, "学习编程");
                    }
                    else if (property.Name.Equals("Phone"))
                    {
                        property.SetValue(obj, "123459789");
                    }
                    //获取属性值
                    Console.WriteLine(property.GetValue(obj));
                }
    
  • 反射测试类

    位于SqlServerDB.dll中的PropertyClass.cs文件中

    public class PropertyClass
       {
           public int Id { get; set; }
           public string Name { get; set; }
           public string Phone { get; set; }
       }
    
posted @ 2022-03-25 17:09  码农阿亮  阅读(44)  评论(0编辑  收藏  举报