2017-06-13 55 views
3

下面是我在应用程序中所做的更改。在代码中添加了FeatureToggle包。并创建了新的打印类(仅用于示例类)扩展SimpleFeatureToggle。如何启用功能在.Net核心使用功能切换Nuget包装切换?

using FeatureToggle; 

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

appSettings.json added featureToggle 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中得到这个错误?

回答

0

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