Mam swój projekt, który używa zwykłego wzorca Repozytorium z Usługami i Jednostką Pracy (wszystkie z Ninject wstrzykuje zależności od NinjectModule), ale próbuję uzyskać dostęp do usługi od ActionFilterAttribute
wstrzyknąć pewne informacje (z DB) w układ stron, które pokazuję, więc nie muszę zadzierać ze wszystkimi działaniami na każdym kontrolerze.Akcja ActionFilterAttribute wstrzyknięcia - DbContext został usunięty
Problem pojawia się, gdy mogę zapisać do DB na jednym ekranie i przejść do następnego, a następnie wrócić do poprzedniego (ze standardowym @Url.Action
): the ActionFilterAttribute
dla działania Index
jest wyzwalany ale wywołanie usługi i odpowiadający repozytorium (w ramach atrybutu) zgłasza wyjątek, ponieważ DbContext has been disposed
.
Czy jest jakiś problem z uzyskaniem dostępu do usługi i, w konsekwencji, DbContext
z ActionFilterAttribute
podczas wstrzykiwania usługi za pośrednictwem funkcji wprowadzania właściwości? Chcę zanotować, że używam wtrysku właściwości dla usługi w atrybucie, ponieważ konstruktor otrzymuje 2 parametry, które są arbitralne w zależności od podpisu metod działania, więc moją jedyną opcją było wstrzyknięcie przez właściwość.
Daj mi znać, jeśli potrzebujesz kodu, a ja zaktualizuję pytanie.
Dodaj proszę kod. –
Kontekst bazy danych i wszystkie miejsca, w które ma zostać wstrzyknięty, muszą zostać poddane inrequestscope (lub krótszemu zakresowi) –