Je construis une petite boutique en ligne avec asp.net mvc et Structuremap ioc/di. La classe Mon panier utilise l'objet de session pour la persistance, et je veux utiliser SM pour créer mon objet panier via l'interface IBasket. L'implémentation de mon panier nécessite HttpSessionStateBase (wrapper d'état de session de mvc) dans le constructeur, disponible dans Controller/Action. Comment puis-je enregistrer mon implémentation IBasket pour SM?
Ceci est mon interface panier:StructureMap IOC/DI et création d'objet
public interface IBasketService {
BasketContent GetBasket();
void AddItem(Product productItem);
void RemoveItem(Guid guid);
}
et l'enregistrement SM:
ForRequestedType(typeof (IBasketService)).TheDefaultIsConcreteType(typeof (StoreBasketService));
Mais ma mise en œuvre de StoreBasketService a constructeur:
public StoreBasketService(HttpSessionStateBase sessionState)
Comment puis-je fournir objet HttpSessionStateBase à SM, qui est disponible uniquement dans le contrôleur?
Ceci est ma première utilisation de SM CIO/DI et cann't trouver une solution/par exemple dans les documents officiels et site Web;)
Je vais essayer aujourd'hui, merci. Mais pour la mise en cache de la classe Basket avec SM, IS.Httpcontext stocke l'objet dans le dictionnaire httpcontext.items, qui est disponible juste au-dessus d'une demande de page, mais je le veux tout au long de la session des utilisateurs. –