Esempio n. 1
0
        public TDest Map <TSrc, TDest>(TSrc src,
                                       IPropNamesMatcher propsMatcher             = null,
                                       IPropValueConverter propertyValueConverter = null,
                                       IMappingStrategy mappingStrategy           = null,
                                       Dictionary <string, object> externalData   = null)
        {
            var dest = (TDest)_mapperConfiguration.ObjectFactory.CreateInstance(typeof(TDest));

            Map(src, dest, propsMatcher, propertyValueConverter, mappingStrategy, externalData);
            return(dest);
        }
Esempio n. 2
0
        public void Map <TSrc, TDest>(TSrc src, TDest dest,
                                      IPropNamesMatcher propsMatcher             = null,
                                      IPropValueConverter propertyValueConverter = null,
                                      IMappingStrategy mappingStrategy           = null,
                                      Dictionary <string, object> externalData   = null)
        {
            if (src == null)
            {
                throw new ArgumentNullException("src", "Source can not be null, specify valid source for mapping");
            }

            propertyValueConverter = propertyValueConverter ?? new NopPropertyValueConverter();
            externalData           = externalData ?? new Dictionary <string, object>();

            var srcMappingObjectType = _mapperConfiguration.MappingObjects.Get(src);
            var srcMappingObject     = _mapperConfiguration.ObjectFactory.CreateInstance(srcMappingObjectType) as IMappingObject;

            srcMappingObject.UnderlyingObject = src;
            srcMappingObject.ExternalData     = externalData;

            var destMappingObjectType = _mapperConfiguration.MappingObjects.Get(dest);
            var destMappingObject     = _mapperConfiguration.ObjectFactory.CreateInstance(destMappingObjectType) as IMappingObject;

            destMappingObject.UnderlyingObject = dest;
            destMappingObject.ExternalData     = externalData;

            var mappingPair = new MappingPair(srcMappingObject, destMappingObject);

            var strategyType = _mapperConfiguration.MappingStrategies.Get(mappingPair);
            var strategy     = mappingStrategy ?? _mapperConfiguration.ObjectFactory.CreateInstance(strategyType) as IMappingStrategy;

            strategy.MapperConfiguration = _mapperConfiguration;
            strategy.PropValueConverter  = propertyValueConverter;
            strategy.PropsMatcher        = propsMatcher ?? _mapperConfiguration.ObjectFactory.CreateInstance(_mapperConfiguration.PropertyNameConverters.Get(mappingPair)) as IPropNamesMatcher;
            strategy.Map(mappingPair);
        }