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 IDictionary<object, object> Items { get; }
|
||||||
|
|
||||||
|
public abstract IServiceProvider ApplicationServices { get; set; }
|
||||||
|
|
||||||
|
public abstract IServiceProvider RequestServices { get; set; }
|
||||||
|
|
||||||
public abstract void Dispose();
|
public abstract void Dispose();
|
||||||
|
|
||||||
public abstract object GetFeature(Type type);
|
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 readonly HttpResponse _response;
|
||||||
|
|
||||||
private FeatureReference<ICanHasItems> _canHasItems;
|
private FeatureReference<ICanHasItems> _canHasItems;
|
||||||
|
private FeatureReference<ICanHasServiceProviders> _canHasServiceProviders;
|
||||||
private IFeatureCollection _features;
|
private IFeatureCollection _features;
|
||||||
|
|
||||||
public DefaultHttpContext(IFeatureCollection features)
|
public DefaultHttpContext(IFeatureCollection features)
|
||||||
|
|
@ -21,6 +22,7 @@ namespace Microsoft.AspNet.PipelineCore
|
||||||
_response = new DefaultHttpResponse(this, features);
|
_response = new DefaultHttpResponse(this, features);
|
||||||
|
|
||||||
_canHasItems = FeatureReference<ICanHasItems>.Default;
|
_canHasItems = FeatureReference<ICanHasItems>.Default;
|
||||||
|
_canHasServiceProviders = FeatureReference<ICanHasServiceProviders>.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
ICanHasItems CanHasItems
|
ICanHasItems CanHasItems
|
||||||
|
|
@ -28,6 +30,11 @@ namespace Microsoft.AspNet.PipelineCore
|
||||||
get { return _canHasItems.Fetch(_features) ?? _canHasItems.Update(_features, new DefaultCanHasItems()); }
|
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 HttpRequest Request { get { return _request; } }
|
||||||
|
|
||||||
public override HttpResponse Response { get { return _response; } }
|
public override HttpResponse Response { get { return _response; } }
|
||||||
|
|
@ -37,6 +44,18 @@ namespace Microsoft.AspNet.PipelineCore
|
||||||
get { return CanHasItems.Items; }
|
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 int Revision { get { return _features.Revision; } }
|
||||||
|
|
||||||
public override void Dispose()
|
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