Yalnızca Yapılandırmaların yüklemesini Startup.cs sayfanızda yapın. Daha sonra başka bir yere ihtiyacınız varsa, değerleri uygun POCO'lara yükleyebilir ve bunları DI'ye kaydedebilirsiniz, böylece onlara ihtiyacınız olan yere enjekte edebilirsiniz. Bu, yapılandırmanızı farklı dosyalarda ve uygulamanıza mantıklı bir şekilde farklı POCO'larda düzenlemenizi sağlar. Bağımlılık enjeksiyonunda bunun için zaten destek var. İşte bunu görecektir:
bir POCO da yapılandırmayı koymak için:
public class SomeOptions
{
public string EndpointUrl { get; set; }
}
Kişisel Startup.cs POCO içine yapılandırmasını yükler ve DI bunu kaydeder. 1.0.0-beta1 ile test edilmiştir
public class SomeController
{
private string _endpointUrl;
public SomeController(IOptions<SomeOptions> options)
{
_endpointUrl = options.Options.EndpointUrl;
}
}
aspnet5 ait oluşturur:
public class Startup
{
public Startup()
{
Configuration = new Configuration()
.AddJsonFile("Config.json")
.AddEnvironmentVariables();
}
public IConfiguration Configuration { get; set; }
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<SomeOptions>(options =>
options.EndpointUrl = Configuration.Get("EndpointUrl"));
services.AddMvc();
}
}
Sonra denetleyicisi yapılandırma POCO olsun içinde böyle bağımlılık enjeksiyon yoluyla Startup.cs oluşturulan.
Daha fazla bilgi için bkz. The fundamentals of ASP.Net 5 Configuration.
Aradığım şey buydu, hizmet koleksiyonundaki Configure seçeneğini kaçırmış gibi görünüyor. –
Hey AndersNS, Bunu denedim ama 'IOptions seçeneklerinde bir hata alıyorum' Bu enjekte edilmek gerekiyor mu? –
Örneğim, IOptions'u SomeController yes içine almak için constructor injection kullanıyor. –
AndersNS