Frage

... absolut nichts?

Welches Teil des Puzzles ist es füllt für ASP.NET WebForms und ASP.NET MVC bzw.

Kann man irgendwie eine ASP.NET * Basis-Anwendung erstellen, die System.Web.Abstractions verwendet, so dass es in beiden Arten von ASP.NET-Webanwendungen verwendet werden kann?

In diesem Fall, wie haben sie Nachrüstungs die Klassen in System.Web.Abstractions zurück in ASP.NET WebForms?

Sie können nicht neu auf Objekte aus dem Namensraum, so kann es nicht für spöttische verwendet werden, kann es?

Aktualisieren : Es tut sie auf, dass nicht klar ist, ich kenne das Problem mit dem Testen von Httpcontext und anderen Build-it ASP.NET-Objekten. Aber danke für gute Erklärungen trotzdem.

War es hilfreich?

Lösung

Der Namespace enthält Typen, die ASP.NET-Kernklassen wickeln sind so konzipiert (wie Httpsessionstate).

Was wollen Sie wissen, warum?

Viele dieser ASP.NET Klassen Kern sind versiegelt oder statisch, es unmöglich zu brechen Abhängigkeiten zwischen ihnen und den Code zu machen. Das heißt, Sie nicht diese Kern Abhängigkeiten spotten können, so dass es viel schwieriger, die ASP.NET-Code zu testen. Also, anstatt direkt die Httpresponse direkt im Code zu manipulieren, manipulieren Sie es über die HttpResponseWrapper , die während der Testzeit können Sie Stummel oder verspotten zu steuern, wie das Httpresponse-Objekt verhält.

Wenn Sie jemals daran gedacht, diese Wrapper erstellen, oder haben ein oder zwei von ihnen, bevor umgesetzt, würden Sie wissen, dass es viel Arbeit in diesem Namensraum eingewickelt, und ich für meinen Teil bin froh, dass sie es tat .

Andere Tipps

Es ist in der Tat für spöttisch. - Httpcontext ist eine versiegelte Klasse und kann nicht (leicht) verspottet. Httpcontextbase nicht abgedichtet ist, und ich glaube, dass es Methoden virtuell sind, machen spöttische viel einfacher.

Sie können zwar nicht neu-up eine Instanz von Httpcontextbase (beispielsweise für den Einsatz in WebForms), können Sie eine Instanz über bekommen:

var ctx = new HttpContextWrapper(HttpContext.Current);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top