ASP.NET 5'te güçlü bir şekilde yazılan yapılandırmayı kurdum ve mükemmel çalışıyor. Ayrıca, .json
yapılandırma dosyaları değiştirildiğinde, otomatik olarak yeniden yüklenecek yapılandırmayı ayarladım. Ancak bu, yalnızca yazılmamış yapılandırmayı kullanırsam çalışır gibi görünüyor. Güçlü yazılan yapılandırma sınıfı, .json
dosyaları değiştiğinde eski değerleri hala korur.ASP.NET 5: Nasıl değiştirildiğini büyük ölçüde yazılan yapılandırmayı yeniden yükle
böyle yapılandırmayı kuruyorum:
public IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
// Setup configuration sources
var builder = new ConfigurationBuilder()
.AddJsonFile("config.json")
.AddJsonFile($"config.{env.EnvironmentName}.json");
Configuration = builder.Build()
.ReloadOnChanged("config.json")
.ReloadOnChanged($"config.{env.EnvironmentName}.json");
/* ... (unrelated stuff edited away) ... */
}
Ve bu şekilde bağlayıcı:
public void ConfigureServices(IServiceCollection services)
{
/* ... (unrelated stuff edited away) ... */
services.AddOptions();
services.AddInstance(Configuration);
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
services.Configure<DbSettings>(Configuration.GetSection("DbSettings"));
/* ... (unrelated stuff edited away) ... */
}
(yapılandırma dosyaları şuna benzer :)
{
"AppSettings": {
"This": "that",
"Foo": "bar"
/* etc... */
},
"DbSettings": {
/* (db settings here) */
}
}
(Ve buna benzer bir C# sınıfına sahibim :)
public class AppSettings
{
public string This { get; set; }
public string Foo { get; set; }
/* etc... */
}
Ben bağımlılık enjeksiyon yoluyla IOptions<AppSettings>
kazanmak zaman config.json
ve config.Dev.json
dosyaları değiştirdiğinizde, değişmez. Yapılandırma sınıfı güncellemesi yapmak için tüm web uygulamasını yeniden başlatmalıyım. Ancak bunun yerine, untylenmemiş IConfiguration
örneğini kullanırsam, json dosyalarını değiştirdiğimde otomatik olarak değişir.
Yani soru şudur: Webapp'ı yeniden başlatmaya gerek kalmadan .json dosyasını değiştirdiğimde güçlü yazılan yapılandırma nasıl değiştirilir?
ile sabit Hiç bu sınırlamayı aşmak için yönetilen mü? Services.configure dosyasını dosya değişikliğine yüklemeye zorlamak mümkün mü? –