public TDestination Adapt <TDestination>(object source) { dynamic fn = _config.GetMapFunction(source.GetType(), typeof(TDestination)); try { return(fn((dynamic)source)); } finally { MapContext.Clear(); } }
/// <summary> /// Adapt the source object to the destination type. /// </summary> /// <typeparam name="TDestination">Destination type.</typeparam> /// <param name="source">Source object to adapt.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static TDestination Adapt <TDestination>(this object source, TypeAdapterConfig config) { if (source == null) { return(default(TDestination)); } dynamic fn = config.GetMapFunction(source.GetType(), typeof(TDestination)); return((TDestination)fn((dynamic)source)); }
public TypeAdapterConfig Clone() { if (_cloneConfig == null) { _cloneConfig = new TypeAdapterConfig(); _cloneConfig.Default.Settings.PreserveReference = true; } var fn = _cloneConfig.GetMapFunction <TypeAdapterConfig, TypeAdapterConfig>(); return(fn(this)); }
public TypeAdapterConfig Clone() { if (_cloneConfig == null) { _cloneConfig = new TypeAdapterConfig(); _cloneConfig.Default.Settings.PreserveReference = true; _cloneConfig.ForType <TypeAdapterSettings, TypeAdapterSettings>() .MapWith(src => src.Clone(), true); } var fn = _cloneConfig.GetMapFunction <TypeAdapterConfig, TypeAdapterConfig>(); return(fn(this)); }
/// <summary> /// Adapte the source object to the destination type. /// </summary> /// <typeparam name="TSource">Source type.</typeparam> /// <typeparam name="TDestination">Destination type.</typeparam> /// <param name="source">Source object to adapt.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static TDestination Adapt <TSource, TDestination>(TSource source, TypeAdapterConfig config) { var fn = config.GetMapFunction <TSource, TDestination>(); try { return(fn(source)); } finally { MapContext.Clear(); } }
/// <summary> /// Adapte the source object to the destination type. /// </summary> /// <typeparam name="TDestination">Destination type.</typeparam> /// <param name="source">Source object to adapt.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static TDestination Adapt <TDestination>(object source, TypeAdapterConfig config = null) { config = config ?? TypeAdapterConfig.GlobalSettings; dynamic fn = config.GetMapFunction(source.GetType(), typeof(TDestination)); try { return(fn((dynamic)source)); } finally { MapContext.Clear(); } }
/// <summary> /// Adapte the source object to the destination type. /// </summary> /// <param name="source">Source object to adapt.</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, Type sourceType, Type destinationType, TypeAdapterConfig config = null) { config = config ?? TypeAdapterConfig.GlobalSettings; dynamic fn = config.GetMapFunction(sourceType, destinationType); try { return(fn((dynamic)source)); } finally { MapContext.Clear(); } }
/// <summary> /// Adapt the source object to the destination type. /// </summary> /// <param name="source">Source object to adapt.</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, Type sourceType, Type destinationType, TypeAdapterConfig config) { var del = config.GetMapFunction(sourceType, destinationType); if (sourceType.GetTypeInfo().IsVisible&& destinationType.GetTypeInfo().IsVisible) { dynamic fn = del; return(fn((dynamic)source)); } else { //NOTE: if type is non-public, we cannot use dynamic //DynamicInvoke is slow, but works with non-public return(del.DynamicInvoke(source)); } }
public TDestination Adapt <TDestination>(object source) { dynamic fn = _config.GetMapFunction(source.GetType(), typeof(TDestination)); return((TDestination)fn((dynamic)source)); }
/// <summary> /// Adapt the source object to the destination type. /// </summary> /// <typeparam name="TSource">Source type.</typeparam> /// <typeparam name="TDestination">Destination type.</typeparam> /// <param name="source">Source object to adapt.</param> /// <param name="config">Configuration</param> /// <returns>Adapted destination type.</returns> public static TDestination Adapt <TSource, TDestination>(this TSource source, TypeAdapterConfig config) { var fn = config.GetMapFunction <TSource, TDestination>(); return(fn(source)); }
/// <summary> /// Adapt the source object to the destination type. /// </summary> /// <param name="source">Source object to adapt.</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, Type sourceType, Type destinationType, TypeAdapterConfig config) { dynamic fn = config.GetMapFunction(sourceType, destinationType); return(fn((dynamic)source)); }
public TDestination Adapt <TSource, TDestination>(TSource source) { var fn = _config.GetMapFunction <TSource, TDestination>(); return(fn(source)); }