Ejemplo n.º 1
0
        public static void Bind <TSource, TTarget>(Action <IBindingConfig <TSource, TTarget> > config)
        {
            TypePair typePair = TypePair.Create <TSource, TTarget>();

            var bindingConfig = new BindingConfigOf <TSource, TTarget>();

            config(bindingConfig);

            _mappers[typePair] = _targetMapperBuilder.Build(typePair, bindingConfig);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Create a one-way mapping between Source and Target types.
        /// </summary>
        /// <typeparam name="TSource">Source type.</typeparam>
        /// <typeparam name="TTarget">Target type.</typeparam>
        /// <param name="config">BindingConfig for custom binding.</param>
        /// <remarks>The method is thread safe.</remarks>
        public IObjectMapper Bind <TSource, TTarget>(Action <IBindingConfig <TSource, TTarget> > config)
        {
            TypePair typePair = TypePair.Create <TSource, TTarget>();

            var bindingConfig = new BindingConfigOf <TSource, TTarget>();

            config(bindingConfig);
            var mapper = _targetMapperBuilder.Build(typePair, bindingConfig);

            Bind(typePair, mapper);
            return(this);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Create a one-way mapping between Source and Target types.
        /// </summary>
        /// <typeparam name="TSource">Source type.</typeparam>
        /// <typeparam name="TTarget">Target type.</typeparam>
        /// <param name="config">BindingConfig for custom binding.</param>
        /// <remarks>The method is thread safe.</remarks>
        public static IReverseBinding <TTarget, TSource> Bind <TSource, TTarget>(Action <IBindingConfig <TSource, TTarget> > config)
        {
            TypePair typePair = TypePair.Create <TSource, TTarget>();

            var bindingConfig = new BindingConfigOf <TSource, TTarget>();

            config(bindingConfig);

            lock (_mappersLock)
            {
                _mappers[typePair] = _targetMapperBuilder.Build(typePair, bindingConfig);
            }

            return(new ReverseBinding <TTarget, TSource>(bindingConfig.BindExpression));
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Create a one-way mapping between one type and another
        /// </summary>
        /// <typeparam name="TSource">Source type</typeparam>
        /// <typeparam name="TTarget">Target type</typeparam>
        /// <param name="config">BindingConfig for Custom Binding</param>
        public static void Bind <TSource, TTarget>(Action <IBindingConfig <TSource, TTarget> > config)
        {
            TypePair typePair = TypePair.Create <TSource, TTarget>();

            var bindingConfig = new BindingConfigOf <TSource, TTarget>();

            config(bindingConfig);

            _mappersLock.EnterWriteLock();
            try
            {
                _mappers[typePair] = _targetMapperBuilder.Build(typePair, bindingConfig);
            }
            finally
            {
                _mappersLock.ExitWriteLock();
            }
        }