这是我的错误:
System.InvalidOperationException:无法解析服务类型“myBackEnd.Entities.Striper”,而试图激活“myBackEnd.Controllers.StripeController”。在Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(的IServiceProvider属,种类类型,类型requiredBy,布尔isDefaultParameterRequired)
我正在使用Automapper首次。我也是新NET。我使用的是HTTPPOST从格式前端获取数据
amount : string;
currency : string;
description : string;
token : string;
name: string;
address_city: string;
address_line1: string;
address_line2: string;
address_state: string;
address_zip: string;
address_country: string;
我有stripe.cs和stripeDto.cs文件:
public class Striper
{
public object Amount { get; set; }
public string Currency { get; set; }
public object Description { get; set; }
public string Token { get; set; }
public string Name { get; set; }
public string Address_line1 { get; set; }
public string Address_line2 { get; set; }
public string Address_state { get; set; }
public string Address_zip { get; set; }
public string Address_country { get; set; }
}
stripeDto:
public class StripeDto
{
public object Amount { get; set; }
public string Currency { get; set; }
public object Description { get; set; }
public string Token { get; set; }
public string Name { get; set; }
public string Address_line1 { get; set; }
public string Address_line2 { get; set; }
public string Address_state { get; set; }
public string Address_zip { get; set; }
public string Address_country { get; set; }
}
这是映射配置文件:
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<Striper, StripeDto>();
CreateMap<StripeDto, Striper>();
}
}
最后,这是控制器:
private readonly AppDbContext _context;
private IMapper _mapper;
public StripeController(AppDbContext context, IMapper mapper)
{
_context = context;
_mapper = mapper;
}
public async Task<IActionResult> PostCreditCardData([FromBody] StripeDto stripeDto)
{
Console.WriteLine("got this from the front end", stripeDto);
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
_context.StripeDto.Add(stripeDto);
// Instantiate source object stripe
await _context.SaveChangesAsync();
_striper = _mapper.Map<Striper>(stripeDto);
return Ok(_striper);
}
我得到这个错误在Visual Studio“无法为类型解析服务‘myBackEnd.Entities.Striper’”
这里是startup.cs代码:
services.AddAutoMapper();
在AutoMapper
类你Startup
配置应该如下:
public void ConfigureServices(IServiceCollection services)
{
// Auto Mapper Configurations
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AddProfile(new MappingProfile());
});
IMapper mapper = mappingConfig.CreateMapper();
services.AddSingleton(mapper);
//........
}
首先,您必须安装Automapper依赖注入包:
安装,包装AutoMapper.Extensions.Microsoft.DependencyInjection
呼叫services.AddAutoMapper()在ConfigureServices方法启动类。
更多关于这个在:https://dotnetcoretutorials.com/2017/09/23/using-automapper-asp-net-core/