Jaki byłby najprostszy sposób ustawienia przechwytywacza żądania/odpowiedzi w ServiceStack, który byłby wykonywany dla konkretnej usługi?Globalny moduł przechwytujący żądania/odpowiedzi
Filtr żądania (IHasRequestFilter
) działa poprawnie, ale filtr odpowiedzi (IHasResponseFilter
) nie jest wyzwalany, jeśli usługa zwraca kod stanu innego niż 2xx. Muszę pobrać kod statusu zwrócony przez metodę oraz DTO odpowiedzi (jeśli istnieje).
Niestandardowy ServiceRunner i nadpisanie metody OnBeforeExecute
i OnAfterExecute
metod wydaje się działać dobrze, ale uważam, że to dość nachalny jak trzeba biegacz usługa zastępuje dla całej aplikacji i nie mogłem znaleźć sposób, czysty sposób izolowania za funkcjonalność zadania, które należy wykonać w tych metodach.
Czy jest jakiś punkt rozszerzenia w ServiceStack, którego mi brakowało, co pozwoliłoby mi na wykonanie kodu przed każdą metodą usługi i po każdej metodzie usługi? Wtyczka byłaby idealna, ale jak mogę zapisać się do niektórych fikcyjnych metod, które pozwoliłyby mi uruchomić niestandardowy kod?
UPDATE:
Tuż po zaksięgowaniu pytanie okazało się, że filtry globalnej reakcji są realizowane bez względu na to, jaki status code jest zwracany przez usługę, która jest dokładnie to, co potrzebne. Ostatnie pytanie: Czy możliwe jest pobranie typu usługi, który obsłuży żądanie w filtrze żądania? Muszę sprawdzić, czy ta usługa jest ozdobiona jakimś niestandardowym atrybutem znacznika.
Tak, byłem właśnie w środku odpowiadając na Q wskazując na metadane :) Możesz również wyświetlić metadane ServiceStack na trasie [/operations/metadata](http://razor.servicestack.net/operations/metadata) . – mythz