当前位置: 首页 > article >正文

属性PropertyInfo的使用

一,如果两个类中有大部分的字段相同,需要将其中一个类赋值给另外一个类。

定义Person类:

1

2

3

4

5

6

7

8

9

10

11

public class Person {

       public Person(int id,string name,string address)

       {

           this.Id = id;

           this.Name = name;

           this.Address = address;

       }

       public int Id {get; set; }

       public string Name {get; set; }

       public string Address {get; set; }

   }

 定义User

1

2

3

4

5

public class User {

       public int Id {get; set; }

       public string Name {get; set; }

       public string Group {get; set; }

   }

转换方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public static User ConvertObject(User user,Person person)

       {

           PropertyInfo[] userPro = user.GetType().GetProperties();

           PropertyInfo[] personPro = person.GetType().GetProperties();

           if (userPro.Length>0&&personPro.Length>0)

           {

               for (int i = 0; i < userPro.Length; i++)

               {

                   for (int j = 0; j < personPro.Length; j++)

                   {<br>//判断User的属性是不是的Person

                       if (userPro[i].Name == personPro[j].Name && userPro[i].PropertyType == personPro[j].PropertyType)

                       {

                           Object value=personPro[j].GetValue(person,null);

                        //Person中属性的值赋值给User<br>   userPro[i].SetValue(user,value , null);

                       }

                   }

               }

           }

           return user;

       }

方法的调用:

1

2

3

4

5

6

7

8

9

10

static void Main(string[] args)

      {

          Person person =new Person(1,"FlyElephant","北京");

          User user =new User();

          user.Id = 20;

          user = ConvertObject(user, person);

          Console.WriteLine("Id:" + user.Id +"Name:" + user.Name +"角色:" + user.Group);

          System.Console.Read();

      }

     


http://www.lryc.cn/news/2416589.html

相关文章:

  • 航天器状态(位置速度)转轨道六根数
  • EPon F4503.0作为交换机使用废旧光猫中国电信光猫改交换机功能作为无线wifi或者交换机使用天翼网关中兴ZXHN免拆机获取破解超级管理员密码
  • AT24C04 eeprom读写测试
  • hotstuff共识算法总结
  • 初学者如何制作一个简单的HTML个人网页
  • IEEE1394(火线)接口全面了解
  • Freemaker指令总结
  • 文本处理正则表达式:grep
  • MySQL字符集的设置
  • C语言“学生信息管理系统”功能详解及代码展示2023级慕课版
  • go二维map_记一次坑爹的golang 二维map判断问题
  • Android Studio 代码混淆(你真的会混淆吗)
  • JSP基于web仓库管理系统v83k3(程序+源码+数据库+调试部署+开发环境)
  • RISC架构
  • 多线程编程java_java多线程编程
  • 递归调用栈溢出问题分析与解决
  • C#的Winform多语言实现(resx文件)
  • 电脑时间老是重置?一招教你轻松解决!
  • 黑色主题个人主页HTML源码
  • 印度电影推荐
  • 教您如何使用WebMatrix创建第一个网页
  • 网络安全笔记-信息安全工程师与网络安全工程师考试大纲(附:Web安全大纲)
  • Windows xp正版验证序列号大全
  • 如何利用CSDN资源来建立技术社区 - 博客篇
  • Farpoint使用一点小总结
  • NSTimer介绍
  • 【C语言深度剖析】深入理解C语言中的移位操作符(代码+图解)
  • 群体智能优化算法之人工鱼群优化算法(Artificial Fish Swarm Algorithm,AFSA)
  • 视频下载网址
  • 为用户“NT AUTHORITY/NETWORK SERVICE”授予的权限不足,无法执行此操作。 (rsAccessDenied)