C# PropertyInfo 将一个对象赋值到另一个相同名称的对象
2016-02-03 10:57
477 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Reflection; namespace ConsoleApplication8 { class Program { static void Main(string[] args) { T1 t1 = new T1(1,"t1_Name","t1_Address"); T2 t2 = new T2(); t2.ID = 3; t2 = ConvertT(t1, t2); Console.WriteLine("ID:{0},Name:{1},Group:{2}", t2.ID, t2.Name, t2.Group); } static T2 ConvertT(T1 t1,T2 t2) { PropertyInfo[] p1 = t1.GetType().GetProperties(); PropertyInfo[] p2 = t2.GetType().GetProperties(); foreach (var item in p1) { foreach (var itme2 in p2) { if (item.Name == itme2.Name && item.PropertyType == itme2.PropertyType) { Object obj = item.GetValue(t1,null); itme2.SetValue(t2, obj,null); } } } return t2; } } class T1 { public T1(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; } } class T2 { public int ID { get; set; } public string Name { get; set; } public string Group { get; set; } } }
相关文章推荐
- c# 借助cmd命令解析apk文件信息
- c#之this显示调用构造函数
- C#读书雷达
- C# 清楚Cookies
- C# 反射 设置字段值无效的解决办法
- c#之new操作符
- C# List使用总结
- CLR via C#深解笔记七 - 自动内存管理(垃圾回收)
- CLR via C#深解笔记六 - 泛型
- C#读书
- .Net and C# release history
- C#设计模式——策略模式
- C#测试题若干,都是基础阿
- C#成神之路<6> 数据类型:浮点以及布尔详解
- C#设计模式——外观模式
- C#成神之路<5> 数据类型:整型详解
- C# 添加xml节点多了xmlns属性问题
- C# 4.0一些有趣的东西
- C# 创建精简版IIS
- internal c# 关键字的理解