Domanda

... assolutamente nulla?

Quale parte del puzzle vuol riempire per WebForms ASP.NET e ASP.NET MVC , rispettivamente?

Si può creare in qualche modo un ASP.NET * base-applicazione che utilizza System.Web.Abstractions in modo che possa essere utilizzato in entrambi i tipi di applicazioni ASP.NET-web?

In questo caso, come hanno fatto retro-inseriscono le classi in System.Web.Abstractions di nuovo in ASP.NET WebForms?

Non puoi nuovi gli oggetti dallo spazio dei nomi, quindi non può essere utilizzato per scherno, può esso?

Aggiorna : Ci scusiamo per non essere chiari su che conosco il problema con i test di HttpContext e altri di build-da ASP.NET-oggetti. Ma grazie per buone spiegazioni comunque.

È stato utile?

Soluzione

Lo spazio dei nomi contiene tipi che sono progettati per avvolgere classi principali di ASP.NET (come HttpSessionState).

Cosa, vuoi sapere perché?

Molte di queste classi ASP.NET fondamentali sono sigillati o statico, rendendo impossibile per rompere le dipendenze tra di loro e il vostro codice. Ciò significa che non si può prendere in giro queste dipendenze di base, rendendo molto più difficile per testare il codice ASP.NET. Così, invece di manipolare direttamente l'HttpResponse direttamente nel codice, di manipolare tramite il HttpResponseWrapper , che, durante il tempo di prova, è possibile stub o deridere fuori per controllare come l'oggetto HttpResponse comporta.

Se hai mai pensato di creare questi involucri, o hanno implementato uno o due di loro prima, sapresti che c'è un sacco di lavoro avvolti in quel namespace, ed io, per uno, sono contento lo hanno fatto .

Altri suggerimenti

E 'davvero per beffardo. - HttpContext è una classe chiusa e non può essere (facilmente) deriso. HttpContextBase non è sigillato e credo che sia i metodi sono virtuali, rendendo beffardo molto più facile.

Mentre non è possibile nuovo-up un'istanza di HttpContextBase (diciamo, per l'uso in WebForms), è possibile ottenere un'istanza tramite:

var ctx = new HttpContextWrapper(HttpContext.Current);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top