Jawaban yang bagus dari teman-teman tetapi saya akan memperingatkan Anda agar tidak selalu mengandalkan Sesi. Ini cepat dan mudah untuk melakukannya, dan tentu saja akan berhasil tetapi tidak akan bagus dalam semua keadaan.
Misalnya jika Anda mengalami skenario di mana hosting Anda tidak mengizinkan penggunaan sesi, atau jika Anda berada di web farm, atau dalam contoh aplikasi SharePoint yang dibagikan.
Jika Anda menginginkan solusi yang berbeda, Anda bisa melihat menggunakan Kontainer IOC seperti Castle Windsor , membuat kelas penyedia sebagai pembungkus dan kemudian menjaga satu contoh kelas Anda menggunakan per permintaan atau gaya hidup sesi tergantung pada kebutuhan Anda.
IOC akan memastikan bahwa instance yang sama dikembalikan setiap kali.
Lebih rumit ya, jika Anda membutuhkan solusi sederhana cukup gunakan sesi.
Berikut adalah beberapa contoh implementasi di bawah ini yang tidak menarik.
Dengan menggunakan metode ini Anda bisa membuat kelas penyedia di sepanjang baris:
public class CustomClassProvider : ICustomClassProvider
{
public CustomClassProvider(CustomClass customClass)
{
CustomClass = customClass;
}
public string CustomClass { get; private set; }
}
Dan daftarkan sesuatu seperti:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<ICustomClassProvider>().UsingFactoryMethod(
() => new CustomClassProvider(new CustomClass())).LifestylePerWebRequest());
}