Tolle Antworten von den Jungs, aber ich möchte Sie davor warnen, sich immer auf die Sitzung zu verlassen. Dies ist schnell und einfach und würde natürlich funktionieren, wäre aber nicht unter allen Umständen großartig.
Zum Beispiel, wenn Sie auf ein Szenario stoßen, in dem Ihr Hosting die Verwendung von Sitzungen nicht zulässt, oder wenn Sie sich in einer Webfarm befinden oder im Beispiel einer freigegebenen SharePoint-Anwendung.
Wenn Sie eine andere Lösung wünschen, können Sie einen IOC-Container wie Castle Windsor verwenden , eine Provider-Klasse als Wrapper erstellen und dann je nach Ihren Anforderungen eine Instanz Ihrer Klasse unter Verwendung des Lebensstils pro Anforderung oder Sitzung beibehalten.
Das IOC würde sicherstellen, dass jedes Mal dieselbe Instanz zurückgegeben wird.
Komplizierter ja, wenn Sie eine einfache Lösung benötigen, verwenden Sie einfach die Sitzung.
Hier sind einige Implementierungsbeispiele aus Interesse.
Mit dieser Methode können Sie eine Anbieterklasse erstellen, die wie folgt aussieht:
public class CustomClassProvider : ICustomClassProvider
{
public CustomClassProvider(CustomClass customClass)
{
CustomClass = customClass;
}
public string CustomClass { get; private set; }
}
Und registrieren Sie es so etwas wie:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<ICustomClassProvider>().UsingFactoryMethod(
() => new CustomClassProvider(new CustomClass())).LifestylePerWebRequest());
}