httpcontextbase 与 httpcontext
httpcontextbase 与 httpcontext在处理请求执行链的各个阶段中,会有一个对象在各个对象之间进行传递,也即会保存请求的上下文信息,这个对象就是HttpContext对象。HttpContext封装了ASP.NET要处理的单次请求的所有信息。
由于HttpContext很难进行Mock,因此为了提高可测试性,微软随ASP.NET MVC发布了一个“抽象包”,专门用于对HttpContext及其相关组件进行抽象,其中就包括HttpContextBase,HttpRequestBase抽象类。
HttpContextBase抽象类的说明
HttpContextBase 类为抽象类,该类包含的成员与 HttpContext 类相同。 使用 HttpContextBase 类可以创建一些派生类,这些派生类与 HttpContext 类相似,但是可以进行自定义并在 ASP.NET 管道外部使用。 在执行单元测试时,通常使用派生类实现具有自定义行为的成员以实现正在测试的方案。
public abstract class HttpContextBase : IServiceProvider
{
protected HttpContextBase() { }
public virtual void AddError(Exception errorInfo)
{
throw new NotImplementedException();
}
public virtual void ClearError()
{
throw new NotImplementedException();
}
...
}