2016-07-19 15 views
4

Ich habe ein .NET Core-Projekt (eine Klassenbibliothek) erstellt, das auch auf .NET 4.6 abzielt, das auf den aktuellen HTTP-Kontext zugreifen können muss. Ich sehe, dass wir nicht mehr die statische HttpContext.Current verwenden können und eine Instanz von IHttpContextAccessor injizieren müssen. Kann ich das noch in einem Web-API-Projekt verwenden, das auf .NET 4.6 abzielt? Bisher kann ich HttpContextAccessor.HttpContext nichts als null zurückgeben.Verwenden von HttpContextAccessor in einem .NET 4.6-Projekt

+0

Haben Sie 'HttpContextAccessor' registriert? –

+0

Sie möchten, dass derselbe Code sowohl auf ASP.NET als auch auf ASP.NET Core funktioniert? Ich bin mir nicht sicher, ob das in diesem Fall möglich ist. – svick

+0

@ademcaglin Nun von was ich verstehe, müssen Sie IApplicationBuilder verwenden, um es zu registrieren, die ich nicht in ASP.NET habe. – Tom

Antwort

1

Für die Klassenbibliothek denke ich, dass Sie die relevanten Variablen/Objekte möglicherweise über Konstruktor oder Methoden übergeben möchten. Es ist eine gute Übung, weil Ihre Klassenbibliothek nicht bricht, wenn Sie sie beispielsweise in einer Konsolenanwendung ohne httpcontext referenzieren.

Wenn Sie sich in einer Controller-Methode befinden, können Sie einfach Request oder Response verwenden.

+0

Hmm, nun, es ist für eine Logging-Bibliothek, die ziemlich viele Details über die HTTP-Anfrage protokollieren muss, so dass ich nicht alle Details der Anfrage angeben muss, wenn jemand etwas protokollieren muss. – Tom

Verwandte Themen