Microsoft.Extensions.DependencyInjection en una biblioteca de clases
Estoy creando una biblioteca de clases en C# para .NET 6 que realiza una serie de configuraciones para la configuración web y HTTP. En la variable IServiceCollection
estoy intentando llamar al método Configure
que recibe una sección, de la siguiente manera:
IServiceCollection services = ...
IConfigurationSection section = ...
services.Configure<mysettings>(section);
Si hago esto en un proyecto web, funciona perfectamente. Sin embargo, en el proyecto de la biblioteca de clases, el método de extensión que recibe un IConfigurationSection
no existe.
En el proyecto web, parece que esto se encuentra en Microsoft.Extensions.DependencyInjection
, pero debe estar en otro lugar. Para el proyecto de la biblioteca, incluí los siguientes paquetes NuGet:
xml
<itemgroup>
<packagereference include="Microsoft.AspNetCore.Http" version="2.2.2"></packagereference>
<packagereference include="Microsoft.AspNetCore.Http.Abstractions" version="2.2.0"></packagereference>
<packagereference include="Microsoft.AspNetCore.Http.Features" version="5.0.13"></packagereference>
<packagereference include="Microsoft.Extensions.Configuration.Abstractions" version="6.0.0"></packagereference>
<packagereference include="Microsoft.Extensions.DependencyInjection" version="6.0.0"></packagereference>
<packagereference include="Microsoft.Extensions.Http" version="6.0.0"></packagereference>
<packagereference include="Microsoft.Extensions.Logging.Abstractions" version="6.0.0"></packagereference>
<packagereference include="Microsoft.Extensions.Options" version="6.0.0"></packagereference>
<packagereference include="System.IdentityModel.Tokens.Jwt" version="6.15.0"></packagereference>
</itemgroup>
davy.ai
Parece que te falta el paquete
Microsoft.Extensions.Configuration
. Este paquete proporciona el método de extensión para registrarIConfigurationSection
enIServiceCollection
. Intenta agregarlo a laPackageReference
de tu proyecto y verifica si esto resuelve el problema.