如何在 AutoMapper class 中使用 Option Pattern?
How to use Option Pattern in side AutoMapper class?
我想在 AutoMapper 中使用 Option Pattern class 但它不起作用
这是 startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAutoMapper(typeof(Startup));
}
这是我的自动映射
public class AutoMapping : Profile
{
private readonly IOptions<AppSettings> _appSettings;
public AutoMapping(IOptions<AppSettings> appSettings)
{
this._appSettings = appSettings;
CreateMap<Hotel, HotelDTO>();
CreateMap<HotelDTO, Hotel>().ForMember(dest => dest.Id, opt => opt.AllowNull());
}
}
映射工作正常,但 IOption 给我内部服务器错误
您不应在个人资料中使用依赖项注入。而是将 IOptions
实例放在与 IMapper
实例相同的位置。然后,当您调用 Map
时,您可以在解析上下文中发送的位置使用重载。例如:
IMapper _mapper;
IOptions<AppSettings> _appSettings;
var hotel = new Hotel();
var hotelDto = _mapper.Map<HotelDTO>(hotel, ctx => {
ctx.Items["appSettings"] = _appsettings;
})
然后你可以在你的配置文件中使用相应的重载:
CreateMap<Hotel, HotelDTO>()
.ForMember(dest => dest.Id, opt => opt.MapFrom((src, dest, prop, ctx) => {
return ctx.Items["appSettings"];
}));
我想在 AutoMapper 中使用 Option Pattern class 但它不起作用 这是 startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAutoMapper(typeof(Startup));
}
这是我的自动映射
public class AutoMapping : Profile
{
private readonly IOptions<AppSettings> _appSettings;
public AutoMapping(IOptions<AppSettings> appSettings)
{
this._appSettings = appSettings;
CreateMap<Hotel, HotelDTO>();
CreateMap<HotelDTO, Hotel>().ForMember(dest => dest.Id, opt => opt.AllowNull());
}
}
映射工作正常,但 IOption 给我内部服务器错误
您不应在个人资料中使用依赖项注入。而是将 IOptions
实例放在与 IMapper
实例相同的位置。然后,当您调用 Map
时,您可以在解析上下文中发送的位置使用重载。例如:
IMapper _mapper;
IOptions<AppSettings> _appSettings;
var hotel = new Hotel();
var hotelDto = _mapper.Map<HotelDTO>(hotel, ctx => {
ctx.Items["appSettings"] = _appsettings;
})
然后你可以在你的配置文件中使用相应的重载:
CreateMap<Hotel, HotelDTO>()
.ForMember(dest => dest.Id, opt => opt.MapFrom((src, dest, prop, ctx) => {
return ctx.Items["appSettings"];
}));