برای نمونه یک چنین کدی را نباید در برنامههای خود داشته باشید:
public ActionResult Index() { Mapper.CreateMap<UserViewModel, User>(); //ادامهی کدها
نمونهی دیگر آن، یک چنین کدهایی هستند:
using (var context = new TestDbContext()) { Mapper.CreateMap<SourceClass, DestinationClass>() .AfterMap((src, dest) => { //using context }); var dest = Mapper.Map<DestinationClass>(source); }
اگر در یک چنین حالتی نیاز به استفادهی context داشتید، بهتر است متدهای استاتیک AutoMapper را فراموش کرده و به نحو ذیل یک موتور محلی نگاشت را ایجاد کنید. چون سطح دید و دسترسی این موتور، عمومی و سراسری نیست، مشکلات thread safety را نخواهد داشت.
var configurationStore = new ConfigurationStore(new TypeMapFactory(), MapperRegistry.Mappers); configurationStore.AddProfile<TestProfile1>(); var mapper = new MappingEngine(configurationStore); configurationStore.CreateMap<SourceClass, DestinationClass>() //ادامهی کدها