public static D Mapper<D, S>(S s)
{
D d = Activator.CreateInstance<D>();
try
{
var sType = s.GetType();
var dType = typeof(D);
foreach (PropertyInfo sP in sType.GetProperties())
{
foreach (PropertyInfo dP in dType.GetProperties())
{
if (dP.Name == sP.Name)
{
dP.SetValue(d, sP.GetValue(s, null), null);
break;
}
}
}
}
catch (Exception ex)
{
}
return d;
}
使用方法:
WORKFLOWTASK w1 = new WORKFLOWTASK();
ServiceReference2.WORKFLOWTASK w2 = lst1[i];
w1 = IPMSService.Mapper<WORKFLOWTASK, ServiceReference2.WORKFLOWTASK>(w2);
lst.Add(w1);
主要是将两个具有相同结构的类进行一一对应赋值。