2013-04-29 15 views
13

Ich konvertiere ASP.NET Web-Anwendung zu MVC Web API-Projekt. Eine meiner Methoden erwartet HttpRequest Klasse. Der Web-API-Controller enthält jedoch nur das Objekt HttpRequestMessage (this.Request). Wissen Sie, wie ich HttpRequestMessage in umwandeln kann?Convert HttpRequestMessage zu HttpRequest

Antwort

22

Sie müssen wahrscheinlich nicht von HttpRequestMessage konvertieren. Es gibt einen anderen Weg:

var context = new HttpContextWrapper(HttpContext.Current); 
HttpRequestBase request = context.Request; 
+2

System.Web.HttpContext.Current.Request – sobelito

+1

Das scheint mir schrecklich zu sein, aber ich muss es tun, wenn ich Funktionen schreiben will, die aufgerufen werden können von ASP.NET-Web-API-Controllern sowie ASP.NET MVC-Controllern. Für das Leben von mir verstehe ich nicht durch Web-API konnte nicht nur auf MVC (so ApiController könnte eine Unterklasse eines normalen MVC-Controller sein) gebaut werden. Wenn Sie MVC und API zusammen verwenden möchten, müssen Sie stattdessen zwischen zwei parallelen, aber inkompatiblen Welten mit denselben Konzepten navigieren. – Andy

0

Versuchen Sie, mit Ihrer HttpRequestBase einen HttpRequestWrapper zu verwenden/erstellen.

+0

Wie bekomme ich eine 'HttpRequestBase'? soll ich selbst eines erstellen? (dh neues Objekt erstellen und 'HttpRequestMessage' -Parameter darauf kopieren) – Avisho