Чудові відповіді від хлопців, але я б застеріг вас від того, щоб завжди покладатися на сесію. Це зробити швидко і легко, і, звичайно, спрацювало б, але не було б чудовим за всіх обставин.
Наприклад, якщо ви зіткнулися зі сценарієм, коли ваш хостинг не дозволяє використовувати сеанси, або ви перебуваєте на веб-фермі, або в прикладі спільного додатка SharePoint.
Якщо ви хочете іншого рішення, можете поглянути на використання контейнера МОК, такого як Castle Windsor , створити клас постачальника як обгортку, а потім зберегти один екземпляр свого класу, використовуючи спосіб запиту або спосіб сесії залежно від ваших вимог.
МОК забезпечить, щоб кожен і той же екземпляр повертався.
Складніше так, якщо вам потрібно просте рішення просто скористайтеся сеансом.
Ось декілька прикладів реалізації нижче, що не цікавлять.
За допомогою цього методу ви можете створити клас постачальника відповідно до:
public class CustomClassProvider : ICustomClassProvider
{
public CustomClassProvider(CustomClass customClass)
{
CustomClass = customClass;
}
public string CustomClass { get; private set; }
}
І зареєструйте це щось на кшталт:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<ICustomClassProvider>().UsingFactoryMethod(
() => new CustomClassProvider(new CustomClass())).LifestylePerWebRequest());
}