.net - 如何使用功能切换 Nuget 包在 .Net Core 中启用功能切换?

标签 .net asp.net-mvc nuget .net-core featuretoggle

以下是我在应用程序中所做的更改。在代码中添加了 FeatureToggle 包。并创建了新的打印类(仅用于示例类)扩展 SimpleFeatureToggle。

using FeatureToggle;

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

appSettings.json 添加了 featureToggle 键并将其设置为 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 类中,检查是否启用功能切换并启用功能。
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。?

最佳答案

我建议您在下次尝试寻求帮助时包含该错误。我的猜测是,如果您刚刚创建了一个项目,很可能 appsetting.json 文件不在 bin 文件夹中。您可以对此进行调查,或者您只需右键单击 appsettings.json 文件,选择属性,然后将“复制到输出目录”更改为“始终复制”。

关于.net - 如何使用功能切换 Nuget 包在 .Net Core 中启用功能切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44515066/

相关文章:

c# - JIT简单优化

c# - .NET 自定义结构类型的内存开销是多少?

asp.net-mvc - PagedList 的帮助程序支持 ASP.NET MVC 中不显眼的 Ajax

c# - ASP.net MVC 4 远程验证不起作用

c# - 引用的项目依赖项是从 GAC 而不是 NuGet 包文件夹复制的

c# - 查询附加实体

c# - 来自特定程序集的 Unity DI 自动注册

Visual Studio 2017 中的 Nuget CLI - 如何运行?

c# - 将 NuGet .pdb 复制到输出目录

c# - 为什么默认情况下所有函数都不应该是异步的?