Jestem naprawdę nowy dla kontenera Castle Windsor IoC. Chciałem wiedzieć, czy istnieje sposób przechowywania zmiennych sesji za pomocą kontenera IoC. Myślałam coś w linii to:Projekt zamku na sesję lifestyle z ASP.NET MVC
chcę mieć klasę do przechowywania opcji wyszukiwania:
public interface ISearchOptions{
public string Filter{get;set;}
public string SortOrder{get;set;}
}
public class SearchOptions{
public string Filter{get;set;}
public string SortOrder{get;set;}
}
A potem wstrzyknąć że do klasy, która ma z niego korzystać:
public class SearchController{
private ISearchOptions _searchOptions;
public SearchController(ISearchOptions searchOptions){
_searchOptions=searchOptions;
}
...
}
następnie w moim pliku web.config, gdzie skonfigurować zamek Chcę mieć coś takiego:
<castle>
<components>
<component id="searchOptions" service="Web.Models.ISearchOptions, Web" type="Web.Models.SearchOptions, Web" lifestyle="PerSession" />
</components>
</castle>
I niech kontener IoC obsługuje obiekt sesji bez konieczności jawnego uzyskiwania dostępu do niego.
Jak mogę to zrobić?
Dzięki.
EDYCJA: Przeprowadziłem badania. Zasadniczo, chcę mieć komponent Scoped sesji. Pochodzę z Java i Spring Framework i tam mam zogniskowane sesje, które moim zdaniem są bardzo przydatne do przechowywania danych sesji.
Dzięki, właśnie tego szukałem. –
Ja też! Dzięki. –
Chyba powinieneś zmienić nazwę pola z PerRequestObjectID na PerSessionObjectID. Wierzę, że patrząc na dokumentację można uzyskać długą drogę :) http://www.castleproject.org/container/documentation/trunk/usersguide/lifestyles.html – Siewers