今天(2016年11月11日)我下载了新的Visual Studio 2017 RC,安装了.Net Core 1.1并设置了一个Web Api项目( ASP.NET核心Web应用程序(.NET Core)) 。然后我按照how to read app settings from a config file上的说明进行操作。这很好。
然后我在同一个解决方案中创建了一个新项目。这是 .NET Core 部分下的类库(.NET标准)。我添加了一个带有接口的类,并使用默认的依赖注入进行设置。
最后,我尝试通过构造函数注入在类库中使用配置。我收到此错误消息:
类型或命名空间名称' IOptions<>'无法找到
这是我的类库中的类:
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有一个特殊的类库吗?
答案 0 :(得分:3)
使用IOptions{T}
是.NET Core中的正确方法。 Visual Studio 2017表示存在不必要的使用。这有点令人困惑,因为当指针在Microsoft.Extensions.Options
上使用时,Visual Studio会指示这一点。查看Visual Studio提出的建议,它不会删除Microsoft.Extensions.Options
使用但是使用其他e.q. `系统。