asp.net mvc 및 Structuremap ioc/di를 사용하여 작은 웹 쇼핑몰을 만들고 있습니다. My Basket 클래스는 지속성을 위해 세션 객체를 사용하며 SM을 사용하여 IBasket 인터페이스를 통해 내 바구니 객체를 생성합니다. 내 바구니 구현은 컨트롤러/액션 내부에서 사용할 수있는 생성자에서 HttpSessionStateBase (mvc의 세션 상태 래퍼)가 필요합니다. SM에 대한 IBasket 구현을 어떻게 등록합니까?StructureMap IOC/DI 및 객체 생성
public interface IBasketService {
BasketContent GetBasket();
void AddItem(Product productItem);
void RemoveItem(Guid guid);
}
그리고 SM 등록 :
이 내 바구니 인터페이스입니다
ForRequestedType(typeof (IBasketService)).TheDefaultIsConcreteType(typeof (StoreBasketService));
하지만 내 StoreBasketService 구현은 생성자가 : SM에
public StoreBasketService(HttpSessionStateBase sessionState)
가 어떻게 제공 할 HttpSessionStateBase 객체를하는 컨트롤러에서만 사용할 수 있습니까?
이 SM IOC/DI의 첫 사용하고, 공식 문서 및 웹 사이트의 솔루션/예를 찾을 두지, 당신은 절대적 StoreBasketService 세션을 사용하게해야하는 경우)
오늘은 고맙습니다. 그러나 SM과 함께 Basket 클래스를 캐싱하기 위해 IS.Httpcontext는 한 페이지 요청에서 사용할 수있는 httpcontext.items 사전에 객체를 저장하지만 전체 사용자 세션을 통해 필요합니다. –