tnblog
首页
视频
资源
登录

反射实例化并动态赋值

4768人阅读 2022/4/21 16:09 总访问:439543 评论:0 收藏:0 手机
分类: ASP.NET
  1. Type type = typeof(User);  //获取类型
  2. object a = Activator.CreateInstance(type);   //创建对象
  3. foreach (var Prop in type.GetProperties())//GetProperties获取属性
  4. {
  5.     Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(a)}");
  6.     if (Prop.Name.Equals("Id"))
  7.     {
  8.         Prop.SetValue(a, 213);//设置值
  9.     }
  10.     else if (Prop.Name.Equals("Name"))
  11.     {
  12.         Prop.SetValue(a, "张三");
  13.     }
  14.     Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(a)}");//获取值
  15. }
  16. foreach (var Field in type.GetFields())//GetFields获取字段
  17. {
  18.     Console.WriteLine($"{type.Name}.{Field.Name}={Field.GetValue(a)}");
  19.     if (Field.Name.Equals("ClassID"))
  20.     {
  21.         Field.SetValue(a, "213");
  22.     }
  23.     Console.WriteLine($"{type.Name}.{Field.Name}={Field.GetValue(a)}");
  24. }
  25. public class UserInfo
  26. {
  27.     public string UserName { getset; }
  28. }
  29. //反射实例化并赋值
  30. Type type = typeof(UserInfo);
  31. object user = Activator.CreateInstance(type);
  32. foreach (var Prop in type.GetProperties())//GetProperties获取属性
  33. {
  34.     Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(user)}");
  35.     if (Prop.Name.Equals("UserName"))
  36.     {
  37.         Prop.SetValue(user, "张三");
  38.     }
  39.     Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(user)}");//获取值
  40. }


评价
当你知道迷惑时,并不可怜,当你不知道迷惑时,才是最可怜的。
排名
11
文章
201
粉丝
10
评论
13
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
就算是堕落浪子,也能力挽狂澜。