public TDestination Adapt <TSource, TDestination>(TSource source, TDestination destination) { var fn = _config.GetMapToTargetFunction <TSource, TDestination>(); try { return(fn(source, destination)); } finally { MapContext.Clear(); } }
/// <summary> /// Adapte the source object to the existing destination object. /// </summary> /// <typeparam name="TSource">Source type.</typeparam> /// <typeparam name="TDestination">Destination type.</typeparam> /// <param name="source">Source object to adapt.</param> /// <param name="destination">The destination object to populate.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static TDestination Adapt <TSource, TDestination>(TSource source, TDestination destination, TypeAdapterConfig config = null) { config = config ?? TypeAdapterConfig.GlobalSettings; var fn = config.GetMapToTargetFunction <TSource, TDestination>(); try { return(fn(source, destination)); } finally { MapContext.Clear(); } }
/// <summary> /// Adapte the source object to an existing destination object. /// </summary> /// <param name="source">Source object to adapt.</param> /// <param name="destination">Destination object to populate.</param> /// <param name="sourceType">The type of the source object.</param> /// <param name="destinationType">The type of the destination object.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static object Adapt(object source, object destination, Type sourceType, Type destinationType, TypeAdapterConfig config = null) { config = config ?? TypeAdapterConfig.GlobalSettings; dynamic fn = config.GetMapToTargetFunction(sourceType, destinationType); try { return(fn((dynamic)source, (dynamic)destination)); } finally { MapContext.Clear(); } }
/// <summary> /// Adapt the source object to an existing destination object. /// </summary> /// <param name="source">Source object to adapt.</param> /// <param name="destination">Destination object to populate.</param> /// <param name="sourceType">The type of the source object.</param> /// <param name="destinationType">The type of the destination object.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static object Adapt(this object source, object destination, Type sourceType, Type destinationType, TypeAdapterConfig config) { var del = config.GetMapToTargetFunction(sourceType, destinationType); if (sourceType.GetTypeInfo().IsVisible&& destinationType.GetTypeInfo().IsVisible) { dynamic fn = del; return(fn((dynamic)source, (dynamic)destination)); } else { //NOTE: if type is non-public, we cannot use dynamic //DynamicInvoke is slow, but works with non-public return(del.DynamicInvoke(source, destination)); } }
public TDestination Adapt <TSource, TDestination>(TSource source, TDestination destination) { var fn = _config.GetMapToTargetFunction <TSource, TDestination>(); return(fn(source, destination)); }
/// <summary> /// Adapt the source object to the existing destination object. /// </summary> /// <typeparam name="TSource">Source type.</typeparam> /// <typeparam name="TDestination">Destination type.</typeparam> /// <param name="source">Source object to adapt.</param> /// <param name="destination">The destination object to populate.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static TDestination Adapt <TSource, TDestination>(this TSource source, TDestination destination, TypeAdapterConfig config) { var fn = config.GetMapToTargetFunction <TSource, TDestination>(); return(fn(source, destination)); }
/// <summary> /// Adapt the source object to an existing destination object. /// </summary> /// <param name="source">Source object to adapt.</param> /// <param name="destination">Destination object to populate.</param> /// <param name="sourceType">The type of the source object.</param> /// <param name="destinationType">The type of the destination object.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static object Adapt(this object source, object destination, Type sourceType, Type destinationType, TypeAdapterConfig config) { dynamic fn = config.GetMapToTargetFunction(sourceType, destinationType); return(fn((dynamic)source, (dynamic)destination)); }