Świetne odpowiedzi od chłopaków, ale ostrzegam Cię przed zawsze poleganiem na sesji. Można to zrobić szybko i łatwo i oczywiście zadziała, ale nie będzie świetny w każdych okolicznościach.
Na przykład, jeśli napotkasz scenariusz, w którym Twój hosting nie zezwala na użycie sesji lub jeśli jesteś w farmie sieci Web lub w przykładzie udostępnionej aplikacji SharePoint.
Jeśli potrzebujesz innego rozwiązania, możesz spojrzeć na użycie kontenera IOC, takiego jak Castle Windsor , tworząc klasę dostawcy jako opakowanie, a następnie utrzymując jedną instancję swojej klasy przy użyciu stylu życia na żądanie lub sesji w zależności od wymagań.
MKOl zapewni, że za każdym razem zwracana będzie ta sama instancja.
Bardziej skomplikowane tak, jeśli potrzebujesz prostego rozwiązania, po prostu skorzystaj z sesji.
Oto kilka przykładów realizacji poniżej, które nie są interesujące.
Korzystając z tej metody, można utworzyć klasę dostawcy w następujący sposób:
public class CustomClassProvider : ICustomClassProvider
{
public CustomClassProvider(CustomClass customClass)
{
CustomClass = customClass;
}
public string CustomClass { get; private set; }
}
I zarejestruj to na przykład:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<ICustomClassProvider>().UsingFactoryMethod(
() => new CustomClassProvider(new CustomClass())).LifestylePerWebRequest());
}