Автоматический картограф, генерирующий исключение ReflectionTypeLoadException в System.Web.IHttpModule - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь использовать Auto Mapper на .Net Core 2.2.

Конфигурация:

services.AddAutoMapper(cfg =>
            {                                
                cfg.CreateMissingTypeMaps = false;                
                cfg.ReplaceMemberName("_", "");
                cfg.ShouldMapProperty = pi => pi.PropertyType != typeof(List<>);
                cfg.CreateMap<bool, string>().ConvertUsing(b => b ? "Y" : "N");
                cfg.CreateMap<string, bool>().ConvertUsing(s => s == "Y");
                cfg.CreateMap<NuCoreAppUser, APP_USER>()
                .ForMember(d => d.APP_USER_ID, opt => opt.MapFrom(src => src.Id))
                .ReverseMap();               
            };

Это только одно отображение для тестирования. Локально работает, но при развертывании в службе приложений Azure выдает:

ReflectionTypeLoadException: Unable to load one or more of the requested types.
 Could not load type 'System.Web.IHttpModule' from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
System.Reflection.RuntimeAssembly.get_DefinedTypes()
AutoMapper.ServiceCollectionExtensions+<>c.<AddAutoMapperClasses>b__14_2(Assembly a)
System.Linq.Enumerable+SelectManySingleSelectorIterator<TSource, TResult>.ToArray()
System.Linq.Enumerable.ToArray<TSource>(IEnumerable<TSource> source)
AutoMapper.ServiceCollectionExtensions.AddAutoMapperClasses(IServiceCollection services, Action<IServiceProvider, IMapperConfigurationExpression> configAction, IEnumerable<Assembly> assembliesToScan)
AutoMapper.ServiceCollectionExtensions.AddAutoMapper(IServiceCollection services, Action<IMapperConfigurationExpression> configAction)
NuCoreWebBase.Startup.ConfigureServices(IServiceCollection services) in Startup.cs
Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services)
Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()
Microsoft.AspNetCore.Hosting.Internal.WebHost.Initialize()
Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

Я нигде не могу найти ссылку на System.Web в своем приложении и не могу найти способ ограничить Auto Mapper от сканирования этой сборки.

Если я удалю Auto Mapper, все будет нормально развернуто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...