I'm using:
- .net core v2.2.0
- Microsoft.EntityFrameworkCore v2.2.4
- automapper v8.1.1
- AutoMapper.Extensions.Microsoft.DependencyInjection v6.1.1
- VS2017 Community Edition v15.9.12
In my solution i have:
- TVC_DATA: handles all data access and contains the mapping profile classes
- TVC_PORTAL: react web app
I have setup automapper using dependency injection following the guide as described here
So: in startup.cs of TVC_PORTAL in ConfigureServices method i have:
services.AddAutoMapper(typeof(AutomapProfileGen));
where i use AutoMapProfileGen is one of the marker types for AddAutoMapper to locate the TVC_DATA assembly where the other profiles are located as well.
In my ObjectController i inject IMapper:
public ObjectController(IHostingEnvironment environment, IMapper mapper)
{
        _hostingEnvironment = environment;            
        _mapper = mapper;
}
And i use the mapper later on:
IEnumerable<ObjectViewType> vList = _mapper.Map<IEnumerable<ObjectType>, IEnumerable<ObjectViewType>>(mList);
My profiles are pretty straightforward, for example:
public class AutomapProfileSrc : Profile
{
    public AutomapProfileSrc()
    {
        //source data
        CreateMap<AirlineView, Airline>().ReverseMap();
        CreateMap<AirlineListView, Airline>().ReverseMap();
        CreateMap<AirportView, Airport>().ReverseMap();
        CreateMap<AirportListView, Airport>().ReverseMap();
        CreateMap<CountryView, Country>().ReverseMap();
        CreateMap<CountryListView, Country>().ReverseMap();
    }
}
My question: i want to set some global config options for automapper and cannot figure out where/how to set them. For example: i want to set ValidateInlineMaps to false (because that was mentioned as a solution when AssertConfigurationIsValid throws 'member not mapped' exceptions). Also i want to set MaxDepth to 1 for all maps to avoid circular references. What i tried:
1) Set ValidateInlineMaps to false in all profile constructors: doesn't work.
public class AutomapProfileCfg : Profile
{
    public AutomapProfileCfg()
    {
        ValidateInlineMaps = false;
...
2) Create a MapperConfiguration object in ConfigureServices like:
'var config = new MapperConfiguration(cfg =>
    {
        cfg.ForAllMaps((typeMap, mappingExpression) => {  mappingExpression.MaxDepth(1); });
        cfg.AllowNullCollections = true;
        cfg.ValidateInlineMaps = false;
        //cfg.Advanced.MaxExecutionPlanDepth = 1;
    });'
But i do not know how to link it to the mapper instance: just creating is not changing the mapper's behaviour.
Have been going through documentation and searching this site for almost a day now: is getting frustrating because this looks like it must be simple....but somehow i can't get it to work. Any help would be much appreciated
 
    