IServiceProviderへの参照や依存関係を解決できるクラスをどうにかして依存関係を取得することは可能ですか?たとえば、クライアントに意味のあるものを出力するためにUseExceptionHandler
で例外を処理する場合、スローされた例外についてのいくつかの注意事項を記すカスタムロギングも行いたいと思います。ASP.netコアでの依存関係注入
例えば、私は私のASP.netコアプロジェクトのStartup
クラスのConfigure
方法でこのコードを持って言うことができます:
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