public void Compile(ModuleBuilder builder) { if (!_compiled) { Initialize(); _creator.Compile(builder); if (_beforeMapAction != null) { _beforeMapBuilder = new ActionInvokerBuilder <TSource, TTarget>(_beforeMapAction); _beforeMapBuilder.Compile(builder); } if (_customMapper != null) { _customInvokerBuilder = new ActionInvokerBuilder <TSource, TTarget>(_customMapper); _customInvokerBuilder.Compile(builder); } else { foreach (var mapper in _memberMappers) { mapper.Compile(builder); } } if (_afterMapAction != null) { _afterMapBuilder = new ActionInvokerBuilder <TSource, TTarget>(_afterMapAction); _afterMapBuilder.Compile(builder); } _compiled = true; } }