Jump to content

Search the Community

Showing results for tags '.netcore'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • C#
    • Başlangıç
    • OOP(Nesne Yönelimli Programlama)

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 1 result

  1. Selam arkadaşlar, Biliyorsunuz ki .NetFramework MVC ile session yapısını aşağıdaki gibi oluşturuyorduk; Session["sessionAdi"] = nesne; ancak .NetCore MVC ile bu şekilde maalesef session oluşturamıyoruz. Bunun en büyük sebebi ise .net core cross platform bir kütüphane olduğu için session içerisine göndereceğimiz nesne sadece string olmalı ya da object (nesne)'i Json'a çevirerek oluşturmamız gerekmektedir. Bu yüzden aşağıda .NetCore MVC ile session oluşturmayı detaylı olarak anlattım. projeyi oluşturduktan sonra Nuget Package Manager ile aşağıdaki paketi projeye dahil etmeliyiz. ardından Startup.cs içerisinde ConfigureServices isimli metot'a sessionı eklemeliyiz. public void ConfigureServices(IServiceCollection services) { services.AddSession(); } alternatif olarak isterseniz session'a bir ömür de tanımlayabilirsiniz. Bunun için ise; services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(5); }); yukarıdaki kodu dahil ettiğinizde oluşturulan session 5 dakika sonra kaldırılır. istersek oluşturmuş olduğumuz session'a aşağıdaki gibi bir isim ve ömür de tanımlayabiliriz. (Ben varsayılan olarak bunu kullancağım.) services.AddSession(options => { options.Cookie.Name = "Örnek.Session"; options.IdleTimeout = TimeSpan.FromMinutes(1); options.Cookie.IsEssential = true; }); bu işlemlerin ardından oluşturmuş olduğumuz session'ı middleware'a tanımlıyoruz. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseSession(); } Session tanımlama işlemlerinin ardından session içerisinde object gönderebilmek amacıyla "Helpers" isminde bir klasör ve içerisine "SessionHelper.cs" isminde bir class tanımlıyorum. Class içerisine ise aşağıdaki kodları yazıyorum. using Microsoft.AspNetCore.Http; public static class SessionHelper { public static void SetObjectAsJson(this ISession session, string key, object value) { session.SetString(key, JsonConvert.SerializeObject(value)); } public static T GetObjectFromJson<T>(this ISession session, string key) { var value = session.GetString(key); return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value); } } yukarıdaki görselde de gördüğünüz üzere Json kütüphanesine ihtiyacımız olduğu için yine package manager console ekranını açarak install-package Newtonsoft.Json komutu ile kütüphaneyi projeye dahil etmeliyiz. kütüphaneyi class içerisinde using anahtar kelimesi ile çağırıyoruz... class içerisinde iki adet static metot tanımlı olduğunu görüyorsunuz. SetObjectAsJson isimli metot, gönderilen nesneyi Json'a çevirmek için kullanılacak T GetObjectFromJson<T> isimli metot ise Json olarak tanımlı olan nesneyi çağırmak için kullanılacak. Metotları detaylı olarak incelediğinizde ilk metot parametre olarak session, anahtar değer ve değerin kendisini parametre olarak aldıktan sonra gönderilen anahtar değere ait bir session oluşturarak değerin kendisini json olarak döndürmekte. İkinci metot ise ilk metot ile oluşturulan Json 'ı generic olarak belirtilen tipe döndürmekte. Oluşturmuş olduğumuz bu metotları kullanmak için Model içerisinde Employee.cs isminde bir nesne(class) tanımlıyorum. oluşturmuş olduğumuz Employee.cs isimli class'a ait bir controller oluşturuyorum. Bu controller içerisinde AddSession ve EmployeeSession isimlerinde iki adet IActionResult tanımlıyorum. AddSession isimli action yeni bir employee oluşturarak oluşturulan employee'i session içerisine gönderecek ardından EmployeeSession isimli action'a bir istekte bulunduğumuzda oluşturmuş olduğumuz session içerisindeki employee bilgilerini unboxing (kutudan dışarı çıkarma) işlemini gerçekleştirerek view'a gönderecek. ve son olarak projeye start verdiğimizde session içerisindeki bilgiyi modelde görebiliriz. takıldığınız yerde bu başlık altında sorabilirsiniz. kolay gelsin...
×
×
  • Create New...