У меня есть автомат настройки класса, как показано ниже:
public class MappingProfile : Profile
{
public MappingProfile()
{
// Map Entity to Model
CreateMap<Tb_Account, PawnAccountModels>();
CreateMap<PawnAccountModels, Tb_Account>();
}
}
config auto mapper с autofac
public class MapperModule : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
builder.RegisterAssemblyTypes(assemblies)
.Where(s => typeof(Profile).IsAssignableFrom(s) && !s.IsAbstract && s.IsPublic)
.As<Profile>();
builder.Register(s => new MapperConfiguration(m =>
{
foreach (var profile in s.Resolve<IEnumerable<Profile>>())
{
m.AddProfile(profile);
}
}));
builder.Register(s => s.Resolve<MapperConfiguration>().CreateMapper()).As<IMapper>().SingleInstance();
}
}
и затем я звоню в Global.asax.
var builder = new ContainerBuilder();
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterModelBinders(typeof(MvcApplication).Assembly);
builder.RegisterModelBinderProvider();
builder.RegisterModule<AutofacWebTypesModule>();
builder.RegisterSource(new ViewRegistrationSource());
builder.RegisterFilterProvider();
builder.RegisterModule(new MapperModule());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
И у меня есть проблема, при первом запуске веб-приложения, это работает нормально. но когда сеанс сервера истек, я пытаюсь отладить код _mapper.Map<Tb_Account, PawnAccountModels>(account);
, он возвращает исключение Automapper исключение:
Missing type map configuration or unsupported mapping.
Что-то не так с моей конфигурацией или использованием autopper?