系统。网。抽象:它是什么好处?
-
05-09-2019 - |
题
...绝对没有什么?
什么拼图的一部分不填充 ASP.NET web表单 和 ASP.NET 视 分别?
你可以以某种方式创建一个ASP.NET *基应用程序,它使用的系统。网。抽象,因此它可以用在这两种ASP。网网应用程序?
在这种情况下,他们怎么复合的类系统。网。抽象回到ASP.NET web表单?
你不能新的对象,从空间,所以它不能被用于嘲笑,可以吗?
更新:抱歉不清楚,我知道问题的测试HttpContext和其他建设它ASP。净的对象。但是谢谢你好的解释了。
解决方案
空间包含的类型,目的是包裹ASP.NET's核心课程(例如HttpSessionState).
什么,你想知道为什么吗?
许多的这些核心ASP.NET 类都密封或静态,使得它不可能打破依赖它们之间的和你的代码。这意味着你不可以嘲笑这些核心的依赖性,使它更难以测试你ASP.NET 代码。因此,而不是直接操纵HttpResponse直接在代码,你操纵这通过的 HttpResponseWrapper, ,其中,在试验时,可以根或模拟出要控制如何HttpResponse对象的行为。
如果你曾经想过创造这些包装,或者已实施一个或两个他们之前,你知道,有大量的工作,包裹在这名字空间,而我有一个,我很高兴他们没有。
其他提示
它确实是嘲笑。 - HttpContext的是一个密封类,不能(容易地)嘲笑。 HttpContextBase不是密封的,我相信它的方法是虚拟的,从而嘲笑容易多了。
虽然你不能将新机的HttpContextBase(比如,在使用的WebForms),你可以通过一个实例的实例:
var ctx = new HttpContextWrapper(HttpContext.Current);
不隶属于 StackOverflow