我有一个经理班:
public class UserManager : IUserManager
{
private readonly IGraphApiClient _client;
private readonly IUserDataProvider _userDataProvider;
private readonly IMapper _mapper;
public UserManager(IGraphApiClient client, IMapper mapper, IUserDataProvider _userDataProvider)
{
_mapper = mapper;
_client = client;
_userDataProvider = userDataProvider;
}
public IEnumerable<Customer> GetAssociatedCustomersByUserEmail(string email)
{
var customers = _userDataProvider.GetAssociatedCustomersByUserEmail(email);
return customers;
}
当我删除 UserManager构造函数签名中的IUserDataProvider _userDataProvider
时,_userDataProvider = userDataProvider;
我的web api将“工作”,因为我可以获得一个断点来命中我可以打电话给端点。显然会在GetAssociatedCustomerByUserEmail()
内抛出异常,因为我没有注入IUserDataProvider。
当我保留这些代码行时,我的所有网络API都将返回500错误状态,并且无法点击任何断点。
起初我意识到我忘了注册IUserDataProvider,但即使在我的startup.cs中这样做之后我仍然遇到同样的问题。
services.AddScoped<IUserDataProvider, UserDataProvider>();
services.AddScoped<IUserManager, UserManager>();
其他所有内容......我的所有控制器,管理员,数据提供者等都在上工作。我想不明白。我已经检查了我所有的访问者(公共与私人),他们似乎是合法的。在这一点上,我已经没有什么可以调查的了。
答案 0 :(得分:6)
从nuget
安装Install-package Microsoft.AspNetCore.Diagnostics
将Configure
中的startup.cs
方法更改为以下,然后您会看到错误消息
注意它应该在任何其他行之前
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
env.EnvironmentName = EnvironmentName.Development;
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/error");
}
app.UseStatusCodePages();
更多信息https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling
答案 1 :(得分:0)
我今天被这个问题困扰。使用依赖注入,并且未在我的控制器使用的启动中注册类。