title: AutoMapper: What is the difference between MapFrom and ResolveUsing?
body: <p>Ignoring the <code>ResolveUsing</code> overloads that take an IValueResolver, and looking only at these 2 methods:</p>
  
  
  
  <pre class="lang-cs prettyprint-override"><code>void ResolveUsing(Func&lt;TSource, object&gt; resolver);
  void MapFrom&lt;TMember&gt;(Expression&lt;Func&lt;TSource, TMember&gt;&gt; sourceMember);
  </code></pre>
  
  <p>The main difference between these 2 seems to be that <code>ResolveUsing</code> takes a <code>Func&lt;TSource, object&gt;</code>, whereas MapFrom takes an <code>Expression&lt;Func&lt;TSource, TMember&gt;&gt;</code>.</p>
  
  <p>However in client code that actually uses one of these methods with a lambda expression, they seem to be interchangeable:</p>
  
  <pre class="lang-cs prettyprint-override"><code>Mapper.CreateMap&lt;SourceType, DestType&gt;() // uses ResolveUsing
     .ForMember(d =&gt; d.DestPropX, o =&gt; o.ResolveUsing(s =&gt; s.SourcePropY));
  
  Mapper.CreateMap&lt;SourceType, DestType&gt;() // uses MapFrom
     .ForMember(d =&gt; d.DestPropX, o =&gt; o.MapFrom(s =&gt; s.SourcePropY));
  </code></pre>
  
  <p>So what ultimately is the difference between the above 2 choices? Is one faster than the other? Is one a better choice than the other and if so, when / why?</p>