c# - 如何将配置部分传递给库项目中的 services.Configure()?
问题描述
创建新的 .NET Core 应用程序时,我可以配置 appsettings.json 文件中的值,如下所示。在文件的ConfigureServices
方法中Startup
我这样做
public void ConfigureServices(IServiceCollection services)
{
ServiceProvider serviceProvider = services.BuildServiceProvider();
IConfiguration configuration = serviceProvider.GetService<IConfiguration>();
IConfigurationSection mySection = configuration.GetSection("MySection");
services.Configure<MyOptions>(mySection);
}
一切正常,这是一个有效的语法。接下来我创建一个库并引用它。我创建了一个静态文件来为该库设置 DI 容器
public static class ServiceConfiguration
{
public static void Configure(IServiceCollection services)
{
// use the same code as shown above
}
}
我打电话给这个MyLib.ServiceConfiguration.Configure(services);
静态文件的最后一行是无效的语法。由于此编译错误,无法将 aIConfigurationSection
作为参数传递给该方法services.Configure()
无法从“Microsoft.Extensions.Configuration.IConfigurationSection”转换为“System.Action<MyLib.MyOptions>”
为什么可以在将代码放在 Web API 项目中而不是在库项目中时传递一个部分?我错过了一个包裹吗?
我为此创建了一个非常小的复制存储库
https://gitlab.com/olafsvenson/options-reproduction
README.md 链接到相关部分
解决方案
推荐阅读
- python - Django:AND过滤相关对象
- android - 对 Android 版 Firemonkey 的支持是否以 SDK 25 结束?
- cakephp - CakePHP 4 SQL 函数包装器,用于返回不正确的数据类型的最小值和最大值
- java - 为什么这个viewholder是空的?
- reactjs - 如何在 React 中对多个孩子使用 flexbox?
- c++ - 为什么这种插入排序方法不起作用?
- csv - 将 CSV 从 Neo4j 导出到 AWS S3 失败
- python - 如何跟进 Oauth Token
- hive - hive 计算从最早时间到当天所有数据的TOPN
- python - 在 Pandas 从长数据框到宽数据框时重命名列