Bu, statik API yerine AutoMapper'ın sağladığı örnek API'yi kullanırsanız mümkün olabilir. This wiki page, ikisi arasındaki farkları detaylandırır.
Esasen yerine o tek haritalama ile tüm küresel mapper yapılandırmasını üzerine yazar sizin ek haritalama, yine AutoMapper.Mapper.Initialize(cfg => ...)
çağırmak, kullanmakta örnek API ile başka mapper nesne oluşturmak gerekir: Of
var config = new MapperConfiguration(cfg =>
cfg.CreateMap<CustomerModel, CustomerInfoModel>()
);
var mapper = config.CreateMapper();
Bu yeni mapper'i kullanabilmek için, ek eşleme yapılandırmanızı kullanarak nesneleri eşlerken özellikle var mappedModel = mapper.Map<CustomerInfoModel>(new CustomerModel());
gibi bir şey yapmanız gerekecektir. Sizin durumunuzda pratik olup olmadığını bilmiyorum, ama ihtiyacım olanı yapmanın tek yolu bu olduğuna inanıyorum.
public static class MapperInitializer
{
/// <summary>
/// Initialize mapper
/// </summary>
public static void Init()
{
// Static mapper
Mapper.Initialize(Configuration);
// ...Or instance mapper
var mapperConfiguration = new MapperConfiguration(Configuration);
var mapper = mapperConfiguration.CreateMapper();
// ...
}
/// <summary>
/// Mapper configuration
/// </summary>
public static MapperConfigurationExpression Configuration { get; } = new MapperConfigurationExpression();
}
// First config
MapperInitializer.Configuration.CreateMap(...);
MapperInitializer.Init(); // or not
//...
MapperInitializer.Configuration.CreateMap(...);
MapperInitializer.Init();
fikri MapperConfiguration örneğinin yerine MapperConfigurationExpression saklamaktır);