Сегодня (11 ноября 2016 г.) Я загрузил новую версию Visual Studio 2017 RC, установил .NET Core 1.1 и настроил проект Web Api (ASP.NET Core Web Application (.NET Core)). Затем я следовал инструкциям на how to read app settings from a config file. Это отлично работает.Как читать конфигурацию .Net Core в стандартной библиотеке классов?
Затем я создал новый проект в том же решении. Это была Class Library (.NET Standard) в разделе . NET Core. Я добавил класс с интерфейсом и настроил его с помощью инъекции по умолчанию.
И наконец,, я попытался использовать конфигурацию в библиотеке классов через инсталляцию конструктора. Я получаю сообщение об ошибке:
типа или пространства имен имя «IOptions <>» не может быть найден
Вот мой класс в библиотеке классов:
public class Firebase : IDatabase
{
public Firebase(IOptions<AppSettings> appSettings)
{
//string basePath =
}
}
Вот метод ConfigureServices в Startup.cs:
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?
Спасибо за ваш ответ! Это заставило меня проверить, возможно, недостающие ссылки. Оказывается, я ссылался на * Microsoft.Extensions.Configuration (1.1.0) *, но не * Microsoft.Extensions.Options.ConfigurationExtensions (1.1.0) *. После очередной перезагрузки VS 2017 это, наконец, сработало! – Halvard