我正在使用 asp.net mvc 和 Structuremap ioc/di 构建小型网上商店。我的篮子类使用会话对象进行持久化,我想使用 SM 通过 IBasket 接口创建我的篮子对象。我的篮子实现需要构造函数中的 HttpSessionStateBase(来自 mvc 的会话状态包装器),它在 Controller/Action 中可用。如何为 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)
如何向 SM 提供 HttpSessionStateBase 对象,该对象仅在控制器中可用?
这是我第一次使用 SM IOC/DI,在官方文档和网站中找不到解决方案/示例;)