将源实体转换到空的实体类中
Posted mact
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将源实体转换到空的实体类中相关的知识,希望对你有一定的参考价值。
这是一个封装的实体转换类
应用场景一张主表一张副表,副表为主表的备份表
//将源实体转换到空的实体类中 调用
主表实体类 entity = new 主表实体类();
EntityCoverter.Covert<主表实体类, 副表实体类>(entity);
//将源实体转换到非空的实体中 调用
主表实体类 entity = new 主表实体类();
副表实体类 hazardInfo = new 副表实体类();
EntityCoverter.Covert<主表实体类 , 副表实体类>(entity, hazardInfo);
/// <summary> /// 实体转换类 /// </summary> public class EntityCoverter { /// <summary> /// 将源实体转换到空的实体类中 /// </summary> /// <typeparam name="T1"></typeparam> /// <typeparam name="T2"></typeparam> /// <param name="source"></param> /// <returns></returns> public static T2 Covert<T1, T2>(T1 source) { T2 result = default(T2); PropertyInfo[] pi = typeof(T2).GetProperties(); PropertyInfo[] pi1 = typeof(T1).GetProperties(); result = Activator.CreateInstance<T2>(); for (int i = 0; i < pi.Length; i++) { PropertyInfo temp = pi1.Where(t => t.Name == pi[i].Name).FirstOrDefault(); if (temp != null) { try { pi[i].SetValue(result, temp.GetValue(source, null), null); } catch (Exception ex) { } } } return result; } /// <summary> /// 将源实体转换到非空的实体中 /// </summary> /// <typeparam name="T1"></typeparam> /// <typeparam name="T2"></typeparam> /// <param name="source"></param> /// <param name="destination"></param> /// <returns></returns> public static T2 Covert<T1, T2>(T1 source, T2 destination) { PropertyInfo[] pi = typeof(T2).GetProperties(); PropertyInfo[] pi1 = typeof(T1).GetProperties(); for (int i = 0; i < pi.Length; i++) { PropertyInfo temp = pi1.Where(t => t.Name == pi[i].Name).FirstOrDefault(); if (temp != null) { try { pi[i].SetValue(destination, temp.GetValue(source, null), null); } catch { } } } return destination; } }
以上是关于将源实体转换到空的实体类中的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?
JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系??请高手做形象的解释。