Adding IServiceProvider interfaces to HttpContext
This commit is contained in:
parent
543e818acd
commit
ca2ef860f5
|
|
@ -11,6 +11,10 @@ namespace Microsoft.AspNet.Abstractions
|
|||
|
||||
public abstract IDictionary<object, object> Items { get; }
|
||||
|
||||
public abstract IServiceProvider ApplicationServices { get; set; }
|
||||
|
||||
public abstract IServiceProvider RequestServices { get; set; }
|
||||
|
||||
public abstract void Dispose();
|
||||
|
||||
public abstract object GetFeature(Type type);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
using System;
|
||||
|
||||
namespace Microsoft.AspNet.PipelineCore
|
||||
{
|
||||
public class DefaultCanHasServiceProviders : ICanHasServiceProviders
|
||||
{
|
||||
public IServiceProvider ApplicationServices { get; set; }
|
||||
public IServiceProvider RequestServices { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ namespace Microsoft.AspNet.PipelineCore
|
|||
private readonly HttpResponse _response;
|
||||
|
||||
private FeatureReference<ICanHasItems> _canHasItems;
|
||||
private FeatureReference<ICanHasServiceProviders> _canHasServiceProviders;
|
||||
private IFeatureCollection _features;
|
||||
|
||||
public DefaultHttpContext(IFeatureCollection features)
|
||||
|
|
@ -21,6 +22,7 @@ namespace Microsoft.AspNet.PipelineCore
|
|||
_response = new DefaultHttpResponse(this, features);
|
||||
|
||||
_canHasItems = FeatureReference<ICanHasItems>.Default;
|
||||
_canHasServiceProviders = FeatureReference<ICanHasServiceProviders>.Default;
|
||||
}
|
||||
|
||||
ICanHasItems CanHasItems
|
||||
|
|
@ -28,6 +30,11 @@ namespace Microsoft.AspNet.PipelineCore
|
|||
get { return _canHasItems.Fetch(_features) ?? _canHasItems.Update(_features, new DefaultCanHasItems()); }
|
||||
}
|
||||
|
||||
ICanHasServiceProviders CanHasServiceProviders
|
||||
{
|
||||
get { return _canHasServiceProviders.Fetch(_features) ?? _canHasServiceProviders.Update(_features, new DefaultCanHasServiceProviders()); }
|
||||
}
|
||||
|
||||
public override HttpRequest Request { get { return _request; } }
|
||||
|
||||
public override HttpResponse Response { get { return _response; } }
|
||||
|
|
@ -37,6 +44,18 @@ namespace Microsoft.AspNet.PipelineCore
|
|||
get { return CanHasItems.Items; }
|
||||
}
|
||||
|
||||
public override IServiceProvider ApplicationServices
|
||||
{
|
||||
get { return CanHasServiceProviders.ApplicationServices; }
|
||||
set { CanHasServiceProviders.ApplicationServices = value; }
|
||||
}
|
||||
|
||||
public override IServiceProvider RequestServices
|
||||
{
|
||||
get { return CanHasServiceProviders.RequestServices; }
|
||||
set { CanHasServiceProviders.RequestServices = value; }
|
||||
}
|
||||
|
||||
public int Revision { get { return _features.Revision; } }
|
||||
|
||||
public override void Dispose()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
using System;
|
||||
|
||||
namespace Microsoft.AspNet.PipelineCore
|
||||
{
|
||||
public interface ICanHasServiceProviders
|
||||
{
|
||||
IServiceProvider ApplicationServices { get; set; }
|
||||
IServiceProvider RequestServices { get; set; }
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue