Как включить функцию переключения функций в.Net Core с помощью пакета функций переключения функций Nuget?

Ниже приведены изменения, которые я сделал в моем приложении. Добавлен пакет FeatureToggle в коде. И Создан Новый Класс Печати (Образец класса только для) Расширение SimpleFeatureToggle.

using FeatureToggle;

namespace AspDotNetCoreExample.Models
{
    public class Printing : SimpleFeatureToggle {}
}

В appSettings.json добавлена ​​функция KeyToggle Key, и она установлена ​​в значение true. Таким образом, класс Printing будет читать его и включать функцию переключения.

    {
  "FeatureToggle": {
    "Printing": "true"
  }
  }       

** Startup.cs Зарегистрировал мою службу печати в методе ConfigureServices. Я передал файл конфигурации (appSettings.json) в класс Printing.

   public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }

    public IConfigurationRoot Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        // Set provider config so file is read from content root path
        var provider = new AppSettingsProvider { Configuration = Configuration };
        services.Configure<AppSettings(Configuration.GetSection("AppSettings"));
        services.AddSingleton(new Printing { ToggleValueProvider = provider });       
        services.AddTransient<IMapper, Mapper>();
        // Add framework services.
        services.AddMvc();
    }

// В Mapper Class, чтобы проверить, включен ли переключатель функции или нет, и включить функции.

namespace STAR.Marketing.Portal.Web
{
    public class Mapper: Mapper
    {
        private readonly Printing _print;

        public Mapper(Printing print) //Dependency Injection to get Printing
        {
            _print = print;
        }
        public string Enabled()
        {
            return _print.FeatureEnabled;   // To check the feature is enabled but getting the Error System.FileIOException
        }
    }
}

Какие ошибки я сделал в приведенном выше коде? Почему я получаю эту ошибку в своем коде System.FileIOException.?

1 ответ

Я бы посоветовал вам сообщить об ошибке в следующий раз, когда вы пытаетесь получить помощь. Я предполагаю, что если вы только что создали проект, вполне вероятно, что файл appsetting.json не находится в папке bin. Вы можете проверить это или просто щелкнуть правой кнопкой мыши файл appsettings.json, выбрать свойства и изменить "Копировать в выходной каталог" на "Всегда копировать".

Другие вопросы по тегам