是否有可能通过某种方式获取对IServiceProvider的引用,或某种可以解决依赖关系的类的依赖?例如,当使用UseExceptionHandler
处理一个异常以向客户端输出有意义的内容时,我还想做一些自定义日志记录来记录关于抛出的异常的一些内容。依赖注入在ASP.net核心中的飞行
例如,可以说我有这样的代码在Configure
方法在Startup
类我ASP.net核心项目:
app.UseExceptionHandler(
builder =>
{
builder.Run(
async context =>
{
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Response.ContentType = "text/html";
var error = context.Features.Get<IExceptionHandlerFeature>();
if (error != null)
{
// TODO Log Exception. Would like to do something like this:
// var logger = ServiceProvider.Resolve<ILogger>();
// logger.LogCritical("Unhandled Error :"error.Error.ToString());
await context.Response.WriteAsync($"<h1>Error: {error.Error.Message}</h1>").ConfigureAwait(false);
}
});
});
我怎么能当我没有得到ILogger的一个实例一个构造函数传入ILogger?
您使用的是什么DI框架? –
我正在使用内置的asp.net核心DI框架。 – Kento