/// <summary> /// Create a one-way mapping between Source and Target types. /// </summary> /// <typeparam name="TSource">Source type.</typeparam> /// <typeparam name="TTarget">Target type.</typeparam> /// <remarks>The method is thread safe.</remarks> public static void Bind <TSource, TTarget>() { var typePair = TypePair.Create <TSource, TTarget>(); lock (_mappersLock) { _mappers[typePair] = _targetMapperBuilder.Build(typePair); } }
/// <summary> /// Create a one-way mapping between one type and another /// </summary> /// <typeparam name="TSource">Source type</typeparam> /// <typeparam name="TTarget">Target type</typeparam> public static void Bind <TSource, TTarget>() { TypePair typePair = TypePair.Create <TSource, TTarget>(); _mappersLock.EnterWriteLock(); try { _mappers[typePair] = _targetMapperBuilder.Build(typePair); } finally { _mappersLock.ExitWriteLock(); } }
/// <summary> /// Create a one-way mapping between Source and Target types. /// </summary> /// <param name="sourceType">Source type.</param> /// <param name="targetType">Target type.</param> /// <remarks>The method is thread safe.</remarks> public IObjectMapper Bind(Type sourceType, Type targetType) { if (sourceType == null) { throw new ArgumentNullException(nameof(sourceType)); } if (targetType == null) { throw new ArgumentNullException(nameof(targetType)); } TypePair typePair = TypePair.Create(sourceType, targetType); var mapper = _targetMapperBuilder.Build(typePair); Bind(typePair, mapper); return(this); }
public static void Bind <TSource, TTarget>() { TypePair typePair = TypePair.Create <TSource, TTarget>(); _mappers[typePair] = _targetMapperBuilder.Build(typePair); }