Sie sind hier: Weblog

ASP.NET Web API: Message Handler für Cross-Cutting Concerns

Foto ,
23.04.2012 00:00:00

Querschnittsfunktionen, die für alle Services zur Ausführung gebracht werden sollen, können in Message Handler ausgelagert werden. Die nachfolgende Listing zeigt, wie man einen solchen Message-Handler durch Ableiten von DelegatingHandler implementieren kann.
public class LoggingHandler : DelegatingHandler 
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
    {
        Debug.WriteLine("Begin Request: {0} {1}", request.Method, request.RequestUri);
        return base.SendAsync(request, cancellationToken);
    }
}
Damit ASP.NET Web API den Handler verwendet, ist er wie folgt - am besten in der Global.asax - zu registrieren.
GlobalConfiguration.Configuration.MessageHandlers.Add(new LoggingHandler());