皆さんからの素晴らしい回答ですが、常にセッションに依存することはお勧めしません。これはすばやく簡単に実行でき、もちろん機能しますが、すべての状況で優れているわけではありません。
たとえば、ホスティングでセッションの使用が許可されていないシナリオに遭遇した場合、Webファームを使用している場合、または共有SharePointアプリケーションの例などです。
別のソリューションが必要な場合は、Castle WindsorなどのIOCコンテナの使用を検討してください。、プロバイダークラスをラッパーとして作成し、要件に応じて要求ごとまたはセッションライフスタイルを使用してクラスの1つのインスタンスを保持ます。
IOCは、毎回同じインスタンスが返されることを保証します。
もっと複雑です。単純なソリューションが必要な場合は、セッションを使用してください。
以下は、関心のある以下の実装例です。
このメソッドを使用すると、次の行に沿ってプロバイダークラスを作成できます。
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());
}