ActionAttributeFilter vs. Delegatinghandler - Vorteile / Nachteile?

8

Ich möchte eingehende Json-Daten von Anfrage und ausgehenden JSON als Antwort protokollieren.

Nach einiger Suche habe ich bemerkt, dass sowohl ActionAttributeFilter als auch DelegatingHandler angepasst werden können. Sind sie irgendwelche Vorteile / Nachteile?

    
Henrik 23.05.2014, 09:24
quelle

2 Antworten

12

Vorteile / Nachteile hängt von Ihren Bedürfnissen ab.

Der delegierende Handler ist in der Hierarchie der Web-API-Anfrageverarbeitung viel höher als ActionAttributeFilter. Wenn Sie den delegierenden Handler implementieren, erstellen Sie einen Nachrichtenhandler, während Sie beim Erstellen des Aktionsfilters einen Filter erstellen, der direkt vor der Aktionsmethode in der Pipeline ausgeführt wird.

Obwohl ein Message-Handler früher in der Pipeline ausgeführt wird, kann es im Handel vorteilhaft sein Anfragen zum frühestmöglichen Zeitpunkt. Der Message-Handler wird für alle Aktionsmethoden oder zumindest für alle Aktionsmethoden einer Route ausgeführt. Dies sollte berücksichtigt werden, wenn der Nachrichtenhandler zur Lösung eines Problems ausgewählt wird. Aktionsfilter können auf einzelne Aktionsmethoden, alle Methoden in einem Controller oder alle Methoden auf allen Controllern angewendet werden Konfigurieren des Filters als globalen Filter.

    
Guanxi 23.05.2014, 15:46
quelle
2

Für Ihre spezielle Anforderung, d. h. Protokollanforderung und Antwort, sollten Sie einen delegierenden Handler verwenden.

Der Vorteil davon ist, dass Sie ein Protokollobjekt aus der Anfrage und der Antwort gleichzeitig erstellen können. Dies liegt daran, dass der delegierende Handler die Anfrage und die Antwort ausführt und somit auf beide zugreifen kann.

%Vor%

Mit ActionFilter können Sie Methoden haben, die vor und nach der Anfrage ausgeführt werden, aber nicht überall, so dass Sie über die Korrelation der Logs irgendwie nachdenken müssen.

    
BritishDeveloper 21.09.2015 13:26
quelle

Tags und Links