You can create two separate resolver on the basis of two separate configurations, only one of which includes a comparison of the float-to-string:
public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); get; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); get; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); get; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); get; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); { public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); > public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); ; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); ConvertUsing (mapFunc).; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); > public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); ; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); Foo = 1f}; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo); Bar = 1f}; public class InputTypeA { public float Foo { get; set; } } public class OutputTypeA { public string Foo { get; set; } } public class InputTypeB { public float Bar { get; set; } } public class OutputTypeB { public string Bar { get; set; } } public class Program { public static void Main(string[] args) { Func<float, string> mapFunc = src => String.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.00}", src); var floatToStringConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeA, OutputTypeA>(); cfg.CreateMap<float, string>().ConvertUsing(mapFunc); }); var regularConfig = new MapperConfiguration(cfg => { cfg.CreateMap<InputTypeB, OutputTypeB>(); }); IMapper floatToStringMapper = floatToStringConfig.CreateMapper(); IMapper regularMapper = regularConfig.CreateMapper(); var aIn = new InputTypeA() { Foo = 1f }; var aOut = floatToStringMapper.Map<OutputTypeA>(aIn); Console.WriteLine(aOut.Foo);