C#中类属性的拷贝,支持属性名忽略大小写
using System;
namespace TestApplication
{
public static class CsPropertiesCopy
{
public static void CopyProperties<S,T>(S obj, T obj2,bool IgnoreUppCase = false)
{
S d = Activator.CreateInstance<S>();
System.Reflection.PropertyInfo[] info = d.GetType().GetProperties();
foreach (var item in info)
{
string value = item.GetValue(obj, null).ToString();
string name1 = "";
if (IgnoreUppCase)
{
name1 = item.Name.ToLower();
}
else
{
name1 = item.Name;
}
System.Reflection.PropertyInfo[] info2 = obj2.GetType().GetProperties();
foreach (var item2 in info2)
{
string name2 = "";
if (IgnoreUppCase)
{
name2 = item2.Name.ToLower();
}
else
{
name2 = item2.Name;
}
if (name1.Equals(name2))
{
item2.SetValue( obj2,value,null );
}
}
}
}
}
}