/// <summary> /// Convers the to. /// </summary> /// <param name="read"></param> /// <returns>A T1.</returns> public T1 ConverTo(IGetValue read) { var properties = t1Type.GetProperties(); var t1 = new T1(); foreach (var item in properties) { var value = read.GetValue(item.Name); if (value == null) { continue; } PropertySetDelegateCache.TrySet(item, t1, value); } return(t1); }
/// <summary> /// Convers the to. /// </summary> /// <param name="model">The model.</param> /// <returns>A T2.</returns> public T2 ConverTo(T1 model) { var properties = t1Type.GetProperties(); var t2Properties = t2Type.GetProperties(); var t2 = new T2(); foreach (var item in properties) { if (!t2Properties.Any(t => t.Name == item.Name)) { continue; } var value = PropertyGetDelegateCache.TryGet(item, model); PropertySetDelegateCache.TrySet(item, t2, value); } return(t2); }