Ich habe eine Methode, die eine HttpResponseMessage erstellt, die ein Error-Objekt enthält, das basierend auf dem aktuellen Anforderungstyp Medientyp-Formatierer zurückgegeben wird.Wie kann global auf das aktuelle HttpRequestMessage-Objekt zugegriffen werden?
Momentan habe ich den XmlMediaTypeFormatter fest programmiert, aber ich möchte die aktuelle Anfrage MediaTypeFormatter zur Laufzeit finden, aber ich habe keinen Zugriff auf das aktuelle Anfrageobjekt, da mein unterer Code in einer separaten Klassenbibliothek existiert.
private HttpResponseMessage Create(HttpStatusCode statusCode, string errorCode, string errorMessage)
{
var result = new HttpResponseMessage(statusCode)
{
Content = new ObjectContent<Error>(new Error()
{
Code = errorCode,
Message = errorMessage
}, new XmlMediaTypeFormatter())
};
return result;
}
Wie global auf das aktuelle HttpRequestMessage-Objekt zugreifen? etwas wie HttpContext.Current.Request
Wenn unmöglich, wie die obige Methode zu implementieren, so dass es weiß, welche Formatierung es für die aktuelle Anforderung verwenden sollte?
Warum übergeben Sie keine 'HttpRequestMessage' an Ihren' XmlMediaTypeFormatter'? Wenn Sie sagen, dass sich Ihr Formatierer in einer anderen Bibliothek befindet, sollten Sie ihn besser nicht mit Ihrer Anwendung verknüpfen. – polkduran
Danke, ich benutze keinen benutzerdefinierten Formatierer. Ich hatte gehofft, ich könnte vermeiden, die Eigenschaft Controller Request zu übergeben. –
Endlich habe ich die Anfrage bestanden, da es keine bessere Lösung gab. –