Srd*_*TLT 2 c# asp.net asp.net-core-mvc asp.net-core
asp.net mvc 6 beta5
我曾尝试使用config.json来激活\ disactive日志记录
public IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();
DBContext.ConnectionString = Configuration.Get("Data:DefaultConnection:ConnectionString");
}
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings"));
}
// Configure is called after ConfigureServices is called.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
{
// that line cause NullReferenceException
AppSettings settings = ConfigurationBinder.Bind<AppSettings>(Configuration);
if (settings.Log.IsActive)
{
................
}
Run Code Online (Sandbox Code Playgroud)
ASP.NET 5(vNext)中的示例- 获取配置设置 和http://perezgb.com/2015/07/04/aspnet-5-typed-settings-with-the-configurationbinder/
是否有其他方法可以获得"configure"方法中AppSettings的实例?我需要输入对象.
你可以使用服务定位器得到它:
IOptions<AppSettings> settings = app.ApplicationServices.GetService<IOptions<AppSettings>>();
if (settings.Options.whatever)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我注意到,如果您使用VS 2015的最终版本创建一个新项目,项目模板不包含AppSettings,就像之前的项目模板那样,不确定原因.
配置中的每个服务ConfigureServices都可以Configure由运行时注入到方法中:
public void Configure(IApplicationBuilder app, IOptions<AppSettings> options)
{
// access options.Options here
}
Run Code Online (Sandbox Code Playgroud)
这是一个比ServiceProvider直接访问更简洁的解决方案。
| 归档时间: |
|
| 查看次数: |
3864 次 |
| 最近记录: |