如何在标准 class 库中读取 .Net Core 配置?
How do I read .Net Core configuration in a standard class library?
今天(2016 年 11 月 11 日)我下载了新的 Visual Studio 2017 RC,安装了 .Net Core 1.1 并设置了一个 Web Api 项目(ASP.NET核心 Web 应用程序 (.NET Core))。然后我按照 上的说明进行操作。这很好用。
然后我在同一个解决方案中创建了一个新项目。这是 Class 库(.NET 标准) 在 .NET Core 部分下。我添加了一个带有接口的 class 并使用默认依赖注入进行设置。
最后,我尝试通过构造函数注入来使用class库中的配置。我收到此错误消息:
The type or namespace name 'IOptions<>' could not be found
这是我在 class 库中的 class:
public class Firebase : IDatabase
{
public Firebase(IOptions<AppSettings> appSettings)
{
//string basePath =
}
}
这是 Startup.cs 中的 ConfigureServices 方法:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddTransient<IDatabase, Firebase>();
// Set up configuration files.
services.AddOptions();
services.Configure<AppSettings>(options => Configuration.GetSection("AppSettings").Bind(options));
}
我尝试添加
using Microsoft.Extensions.Options;
让它编译,但灯泡告诉我这是一个不必要的参考。
我错过了什么?这不可能吗? .NET Core 有专门的 class 库吗?
使用 IOptions{T}
是 .NET Core 中的正确方法。 Visual Studio 2017 表示有不必要的使用。这有点令人困惑,因为 Visual Studio 在指针位于 Microsoft.Extensions.Options
using 上时指示这一点。查看 Visual Studio 提出的建议,它不会删除 Microsoft.Extensions.Options
使用但 e.q 的其他使用。 `系统.
今天(2016 年 11 月 11 日)我下载了新的 Visual Studio 2017 RC,安装了 .Net Core 1.1 并设置了一个 Web Api 项目(ASP.NET核心 Web 应用程序 (.NET Core))。然后我按照
然后我在同一个解决方案中创建了一个新项目。这是 Class 库(.NET 标准) 在 .NET Core 部分下。我添加了一个带有接口的 class 并使用默认依赖注入进行设置。
最后,我尝试通过构造函数注入来使用class库中的配置。我收到此错误消息:
The type or namespace name 'IOptions<>' could not be found
这是我在 class 库中的 class:
public class Firebase : IDatabase
{
public Firebase(IOptions<AppSettings> appSettings)
{
//string basePath =
}
}
这是 Startup.cs 中的 ConfigureServices 方法:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddTransient<IDatabase, Firebase>();
// Set up configuration files.
services.AddOptions();
services.Configure<AppSettings>(options => Configuration.GetSection("AppSettings").Bind(options));
}
我尝试添加
using Microsoft.Extensions.Options;
让它编译,但灯泡告诉我这是一个不必要的参考。
我错过了什么?这不可能吗? .NET Core 有专门的 class 库吗?
使用 IOptions{T}
是 .NET Core 中的正确方法。 Visual Studio 2017 表示有不必要的使用。这有点令人困惑,因为 Visual Studio 在指针位于 Microsoft.Extensions.Options
using 上时指示这一点。查看 Visual Studio 提出的建议,它不会删除 Microsoft.Extensions.Options
使用但 e.q 的其他使用。 `系统.