Microsoft.Extensions.DependencyInjection 在 class 图书馆
Microsoft.Extensions.DependencyInjection in a class library
我正在为 .NET 6 创建一个 C# class 库,它为 Web 配置和 HTTP 做了一堆设置。在 IServiceCollection
上,我正在尝试调用采用一个部分的 Configure
方法,如下所示:
IServiceCollection services = ...
IConfigurationSection section = ...
services.Configure<MySettings>(section);
如果我在 Web 项目中正确地做到这一点,效果会很好。在 class 库项目中,不存在采用 IConfigurationSection
的扩展方法。
在 web 项目中,它似乎来自 Microsoft.Extensions.DependencyInjection,但它必须在其他地方。对于库项目,我包含了以下 NuGet 包。
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="5.0.13" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.15.0" />
</ItemGroup>
您缺少 Microsoft.Extensions.Options.ConfigurationExtensions 包。
另请注意,OptionsConfigurationServiceCollectionExtensions.Configure
重载接受 IConfiguration
接口,这是 IConfigurationSection
的基础。
我正在为 .NET 6 创建一个 C# class 库,它为 Web 配置和 HTTP 做了一堆设置。在 IServiceCollection
上,我正在尝试调用采用一个部分的 Configure
方法,如下所示:
IServiceCollection services = ...
IConfigurationSection section = ...
services.Configure<MySettings>(section);
如果我在 Web 项目中正确地做到这一点,效果会很好。在 class 库项目中,不存在采用 IConfigurationSection
的扩展方法。
在 web 项目中,它似乎来自 Microsoft.Extensions.DependencyInjection,但它必须在其他地方。对于库项目,我包含了以下 NuGet 包。
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="5.0.13" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.15.0" />
</ItemGroup>
您缺少 Microsoft.Extensions.Options.ConfigurationExtensions 包。
另请注意,OptionsConfigurationServiceCollectionExtensions.Configure
重载接受 IConfiguration
接口,这是 IConfigurationSection
的基础。