为具有相同属性的两个类赋值

来源:互联网 发布:数据运营是做什么的 编辑:程序博客网 时间:2024/06/05 17:25

        public void CopyModel<T1, T2>(T1 t1, T2 t2)
        {
            foreach (PropertyInfo pInfo in t1.GetType().GetProperties())
            {
                object val = pInfo.GetValue(t1, null);
                PropertyInfo info2 = getPropertyInfo<T2>(t2, pInfo.Name);
                info2.SetValue(t2, val, null);
            }
        }

        private PropertyInfo getPropertyInfo<T>(T t,string name)
        {
            foreach (PropertyInfo pInfo in t.GetType().GetProperties())
            {
                if (pInfo.Name == name)
                {
                    return pInfo;
                }
            }
            return null;
        }

 

调用示例:

 

            A.MO_Order mo_order2 = (A.MO_Order)fomatter.Deserialize(stream);;

            B.MO_Order mo_order3 = new WebApplication2.B.MO_Order();

            CopyModel<A.MO_Order, B.MO_Order>(mo_order1, mo_order3);