AutoMapper resolver not passing expected type <p>Given the following classes and resolver, why am I getting this error? I don't see why ProductAddModel is being passed in at all.</p> <blockquote> <p>AutoMapper.AutoMapperMappingException was unhandled by user code<br> Message=Value supplied is of type System.Decimal but expected AuctionCMS.Framework.Models.Admin.ProductAddModel. Change the value resolver source type, or redirect the source value supplied to the value resolver using FromMember.</p> </blockquote> <p>Types:</p> <pre><code> public class Currency { public Int64 Value { get; set; } // Spot saved for currency type and any other extra properties } public class Product { public Currency Price { get; set; } public Currency ReservePrice { get; set; } } public class ProductAddModel { public Decimal Price { get; set; } public Decimal ReservePrice { get; set; } } </code></pre> <p>Resolver code:</p> <pre><code>public class DecimalToCurrencyValueResolver : ValueResolver&lt;decimal, Currency&gt; { #region Overrides of ValueResolver&lt;decimal,Currency&gt; protected override Currency ResolveCore(decimal source) { return new Currency() { Value = (Int64)((decimal)source) * 1000 }; } #endregion } public class CurrencyToDecimalValueResolver : ValueResolver&lt;Currency, decimal&gt; { #region Overrides of ValueResolver&lt;decimal,Currency&gt; protected override decimal ResolveCore(Currency source) { return (decimal)source.Value * 1000; } </code></pre> <p>Mapping code:</p> <pre><code> Mapper.CreateMap&lt;ProductAddModel, Product&gt;() .ForMember(x =&gt; x.Price, opt =&gt; opt.ResolveUsing&lt;DecimalToCurrencyValueResolver&gt;()) .ForMember(x =&gt; x.ReservePrice, opt =&gt; opt.ResolveUsing&lt;DecimalToCurrencyValueResolver&gt;()); Mapper.CreateMap&lt;Product, ProductAddModel&gt;() .ForMember(x =&gt; x.Price, opt =&gt; opt.ResolveUsing&lt;CurrencyToDecimalValueResolver&gt;()) .ForMember(x =&gt; x.ReservePrice, opt =&gt; opt.ResolveUsing&lt;CurrencyToDecimalValueResolver&gt;()); var model = new ProductAddModel(); var product = new Product(); Mapper.Map&lt;ProductAddModel, Product&gt;(model, product); </code></pre> <p>What am I doing wrong and is this approach the best way to handle simple transforms during the mapping process?</p> <p>Thanks!</p>