Beide haben Request und Response Eigenschaften, aber ich kann keine Methode schreiben, die entweder HttpContext oder HttpContextBase nimmt. An einigen Orten ist entweder das eine oder das andere verfügbar, also muss ich beides behandeln. Ich weiß, HttpContextWrapper kann in eine Richtung konvertieren, aber immer noch ... warum ist es so?Warum wird HttpContext nicht von HttpContextBase abgeleitet?
Antwort
HttpContext
gibt es seit .NET 1.0. Aus Gründen der Rückwärtskompatibilität können sie diese Klasse nicht ändern. HttpContextBase
wurde in ASP.NET MVC eingeführt, um eine bessere Testbarkeit zu ermöglichen, da es einfacher ist, es zu stempeln.
Dies ist eine alte Frage, aber ich hatte gerade das gleiche Problem und die Antwort ist in Gunders Kommentar.
Erstellen Sie Methoden HttpContectBase verwenden und dann wickeln Sie Ihren Kontext in eine HttpContextWrapper, wenn Sie es aus dem Code
public class SomeClass{
... other stuff in your class
public void MyMethod(HttpContextBase contextbase){
...all your other code
}
}
Nutzungs
var objSomeClass = new SomeClass();
objSomeClass.MyMethod(new HttpContextWrapper(HttpContext.Current));
nennen wollen denke ich HttpContext.Current sein null, wenn Sie diesen Aufruf über AJAX, machen Ich werde untersuchen, wie Sie den Kontext erhalten und diesen Beitrag aktualisieren.
Ich denke, Sie sollten noch einen HttpContext auch mit Ajax-Aufrufe haben – JoelFan
- 1. Warum wird Auto anders abgeleitet?
- 2. Warum wird UserRolesPartRecord nicht von ContentPartRecord in Orchard CMS abgeleitet?
- 3. Wird HttpContext injiziert, indem Konstruktorinjektion in HttpModule falsch verwendet wird?
- 4. Mocking HttpContextBase mit Moq
- 5. Process (Httpcontextbase) -Methode
- 6. Mocking HttpContext funktioniert nicht
- 7. Serverseitiges Äquivalent von HttpContext?
- 8. Warum HttpCookieCollection.Get null zurückgibt, wenn sie von einem manuell instanzierte Objekt (und nicht von der aktuellen Httpcontext)
- 9. Warum verursacht eine Varianz-Annotation, dass diese Subtyping-Beziehung nicht von Scala abgeleitet wird?
- 10. Override AuthorizeCore von AuthorizeAttribute wird nicht aufgerufen
- 11. Simple Injector: Wie injiziere ich HttpContext?
- 12. kann nicht abgeleitet Instanz von Num machen
- 13. MonadException Instanz nicht abgeleitet
- 14. StructureMap wirft Argument auf Httpcontext
- 15. MVC 4 Mocking HttpContext - wie Mocking DisplayModeProvider
- 16. C++: Fehler "... nicht von Typ abgeleitet ..."
- 17. Verwenden von httpcontext in Komponententest
- 18. Warum GetVaryByCustomString nicht aufgerufen wird
- 19. Anmeldung Identität - Nicht in Httpcontext Arbeits
- 20. Wie man HttpApplication/HttpContext zum Testen vortäuscht oder vortäuscht
- 21. Wie registrieren Httpcontextbase mit Autofac in Asp.Net (nicht MVC)
- 22. Muss die Basismethode aufgerufen werden, wenn von TObject abgeleitet wird?
- 23. Warum werden Qualifizierer von Vorlagenargumenten entfernt, wenn der Typ abgeleitet wird?
- 24. Holen Sie die aktuelle System.Web.UI.Page von HttpContext?
- 25. HttpContext auf Instanzen von Controllern sind Null in ASP.net MVC
- 26. Benutzerdefiniertes AuthorizeAttribute, das nicht von MVC Framework aufgerufen wird
- 27. C++ - Unterklasse, die von Klassen abgeleitet ist, die von derselben Klasse abgeleitet sind
- 28. Wie wird HttpContextBase mit Ninject registriert? Ich habe es nicht explizit gebunden
- 29. Konvertierung von abgeleitet * zu Base * existiert aber ist nicht zugänglich
- 30. C++ Vorlage: 'ist nicht vom Typ abgeleitet'
Ich kam hierher, um herauszufinden, wie man eine 'HttpContextBase' in' HttpContext' umwandelt. Ihre Frage enthielt die Antwort. Die Antwort ist 'HttpContextWrapper', die von' HttpContextBase' abgeleitet ist und einen 'HttpContext' als Parameter für den Konstruktor verwendet. Wie der Name andeutet, wird ein 'HttpContext' eingebunden und als' HttpContextBase'-kompatibles Objekt zur Verfügung gestellt. Vielen Dank! –
http://StackOverflow.com/a/4567707/955831 –