Options pattern nedir ?
Options pattern configurasyonlara class'lar aracılığıyla erişmemizi sağlayan bir bir .net core özelliğidir.
Options pattern nasıl kullanılır ?
Aşağıda linkten projei indirin :
Proje
Öncelikle projeye default bir mvc projesi açtım ve sırasıyla şu dosyaları değiştirdim veya yaratım :
1.) "appsettings.json"a MustafaConfiguration adlı configuration'ları ekledim :
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"MustafaConfiguration": {
"Soyad": "YEYIN",
"Yas": "24"
}
}
2.) MustafaConfiguration adlı class 'ı yarattım :
public class MustafaConfiguration
{
public string Soyad { get; set; }
public string Yas { get; set; }
}
3.) "Startup.cs"de IOptions pattern'i configure ettim :
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MustafaConfiguration>(Configuration.GetSection("MustafaConfiguration"));
services.AddControllersWithViews();
}
.
.
.
4.) "HomeController"da IOptionsPattern'i di(dependecy injection) olarak geçtim:
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly MustafaConfiguration _mustafaConfiguration;
public HomeController(ILogger<HomeController> logger, IOptions<MustafaConfiguration> mustafaConfiguration)
{
_logger = logger;
_mustafaConfiguration = mustafaConfiguration.Value;
}
.
.
.
Dah sonra MustafaConfiguration adlı class'a atanan değeleri aşağıdaki gibi ViewBag'e Soyad ve Yas olarak geçtim.
public IActionResult Index()
{
ViewBag.Soyad = _mustafaConfiguration.Soyad;
ViewBag.Yas = _mustafaConfiguration.Yas;
return View();
}
5.) Index.cshtml'e sadece ViewBag'leri ekledim aşağıki gibi :
@{
ViewData["Title"] = "Home Page";
}
@ViewBag.Soyad
@ViewBag.Yas
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
Sonuç : appsettings.json'daki MustafaConfiguration'ının Soyad ve Yas bilgilerini böylece ulaşabildim. Aşağıdaki resimdeki gibi :
Yani IOptions pattern ile configuration dosyası olan appsettings.json dan, bir class olan MustafaConfiguration adlı class'a değer geçirebilip(Soyad ve yas bilgilerini geçirdik), daha sonra ViewBag'lere bu bilgileri atayıp Index.cshtml dosyasından göstermiş olduk.
Bir dahaki yazıda görüşmek üzere.
En iyi dileklerim ile.
Mustafa Samed Yeyin.
Top comments (0)