aspnetcore/src/Microsoft.AspNet.PipelineCore/DefaultHttpContext.cs

43 lines
1.3 KiB
C#

using System;
using Microsoft.AspNet.Abstractions;
using Microsoft.AspNet.FeatureModel;
namespace Microsoft.AspNet.PipelineCore
{
public class DefaultHttpContext : HttpContext
{
private readonly IInterfaceDictionary _environment;
private readonly HttpRequest _request;
private readonly HttpResponse _response;
public DefaultHttpContext(IInterfaceDictionary environment)
{
_environment = environment;
_request = new DefaultHttpRequest(this);
_response = new DefaultHttpResponse(this);
}
public override HttpRequest Request { get { return _request; } }
public override HttpResponse Response { get { return _response; } }
public int Revision { get { return _environment.Revision; } }
public override void Dispose()
{
// REVIEW: is this necessary? is the environment "owned" by the context?
_environment.Dispose();
}
public override object GetInterface(Type type)
{
object value;
return _environment.TryGetValue(type, out value) ? value : null;
}
public override void SetInterface(Type type, object instance)
{
_environment[type] = instance;
}
}
}