Atrybut dodający logikę do metody

0

Cześć.

Chciałbym osiągnąć w wieeeelkim uproszczeniu taką funkcjonalność, że przypisując atrybut (przykładowo [DoAsync]), do metody controllera, będzie ona wywoływana jako task. Sprowadzi się to do przekierowania requesta do czegoś co przeczyta ten atrybut, weźmie(skąd?) referencje tej metody do której jest przypisany, i odpali ją jako task. Czy jest to wykonalne?

2

Jak najbardziej. Takie coś nazywa się programowaniem aspektowym a to czego dokładnie szukasz to interceptor. Jego działanie polega na tym, że opakowuje metodę i możesz wykonać dowolny kod przed i po metodzie np. wywołać ją wewnątrz Tasku.

0

Dodam, że sensowne kontenery IoC posiadają obsługę interceptorów, sprawdź, czy ten, którego używasz ją ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1