Tenho um interceptor do Entity Framework Core que precisa obter alguma configuração declarada assim:
builder.Services.Configure<AppConfig>(builder.Configuration.GetSection("AppConfig"));
Estou com dificuldade para registrar o interceptor, pois não consigo usar o AppConfig
when overriding OnConfiguring
.
Encontrei uma maneira de adicioná-lo ao configurar serviços aqui e segui esta pergunta do SO . A solução não pode funcionar aqui porque (presumo) o AppConfig
é criado somente após a construção.
var someInterceptor = new SomeInterceptor(/*this takes AppConfig as an argument*/);
builder.Services.AddSingleton(someInterceptor);
....AddInterceptors(someInterceptor);
O que posso fazer com isso? É possível injetar isso no interceptor?
Na verdade, em tempos mais modernos ( .NET6+ com ConfigurationManager ) você não precisa construir a configuração para obter valores dela. Você pode simplesmente:
Dito isto, no blogpost que você vinculou, há uma abordagem mais limpa usada -
se você criar
IOptions<AppConfig>
(ou outro tipo de padrão de opções com tempo de vida apropriado para seu caso de uso) uma dependência do interceptor, ele será resolvido corretamente.