asp.net mvc と Structuremap ioc/di を使用して小さな Web ショップを構築しています。Basket クラスは永続化のためにセッション オブジェクトを使用し、SM を使用して IBasket インターフェイスを介して Basket オブジェクトを作成したいと考えています。私のバスケットの実装では、コントローラー/アクション内で利用できるコンストラクターに HttpSessionStateBase (mvc のセッション状態ラッパー) が必要です。SM の IBasket 実装を登録するにはどうすればよいですか?
これは私のバスケットインターフェースです:
public interface IBasketService {
BasketContent GetBasket();
void AddItem(Product productItem);
void RemoveItem(Guid guid);
}
そしてSM登録:
ForRequestedType(typeof (IBasketService)).TheDefaultIsConcreteType(typeof (StoreBasketService));
しかし、私の StoreBasketService 実装にはコンストラクターがあります。
public StoreBasketService(HttpSessionStateBase sessionState)
コントローラーでのみ使用可能な HttpSessionStateBase オブジェクトを SM に提供するにはどうすればよいですか?
これが SM IOC/DI の初めての使用であり、公式ドキュメントや Web サイトで解決策や例を見つけることができません ;)