diff --git a/src/Microsoft.AspNet.Abstractions/IBuilder.cs b/src/Microsoft.AspNet.Abstractions/IBuilder.cs index 778e98d4..5699bed1 100644 --- a/src/Microsoft.AspNet.Abstractions/IBuilder.cs +++ b/src/Microsoft.AspNet.Abstractions/IBuilder.cs @@ -4,13 +4,12 @@ namespace Microsoft.AspNet.Abstractions { public interface IBuilder { + IServiceProvider ServiceProvider { get; set; } + IBuilder Use(Func middleware); IBuilder Run(RequestDelegate handler); IBuilder New(); RequestDelegate Build(); - - object GetItem(Type type); - void SetItem(Type type, object feature); } } diff --git a/src/Microsoft.AspNet.AppBuilderSupport/AppBuilderSupportExtensions.cs b/src/Microsoft.AspNet.AppBuilderSupport/AppBuilderSupportExtensions.cs index d434c85b..dfb66eb4 100644 --- a/src/Microsoft.AspNet.AppBuilderSupport/AppBuilderSupportExtensions.cs +++ b/src/Microsoft.AspNet.AppBuilderSupport/AppBuilderSupportExtensions.cs @@ -16,7 +16,7 @@ public static class AppBuilderSupportExtensions { public static IAppBuilder UseBuilder(this IAppBuilder appBuilder, Action configuration) { - IBuilder builder = new Builder(); + IBuilder builder = new Builder(null); configuration(builder); Func middleware1 = next1 => { Func middleware2 = next2 => { diff --git a/src/Microsoft.AspNet.PipelineCore/Builder.cs b/src/Microsoft.AspNet.PipelineCore/Builder.cs index 8e4d2f0a..48edba1c 100644 --- a/src/Microsoft.AspNet.PipelineCore/Builder.cs +++ b/src/Microsoft.AspNet.PipelineCore/Builder.cs @@ -1,56 +1,20 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using Microsoft.AspNet.Abstractions; -using Microsoft.AspNet.FeatureModel; namespace Microsoft.AspNet.PipelineCore { public class Builder : IBuilder { - private readonly IFeatureCollection _interfaces; - private readonly IDictionary _properties; private readonly IList> _components = new List>(); - public Builder() + public Builder(IServiceProvider serviceProvider) { - _interfaces = new FeatureCollection(); - _properties = new Dictionary(); + ServiceProvider = serviceProvider; } - public Builder(IFeatureCollection interfaces, IDictionary properties) - { - _interfaces = interfaces; - _properties = properties; - } - - public void Dispose() - { - _interfaces.Dispose(); - } - - public virtual object GetItem(Type key) - { - object value; - return _interfaces.TryGetValue(key, out value); - } - - public virtual void SetItem(Type key, object value) - { - _interfaces[key] = value; - } - - public virtual object GetItem(string key) - { - object value; - return _properties.TryGetValue(key, out value); - } - - public virtual void SetItem(string key, object value) - { - _properties[key] = value; - } + public IServiceProvider ServiceProvider { get; set; } public IBuilder Use(Func middleware) { @@ -65,7 +29,7 @@ public IBuilder Run(RequestDelegate handler) public IBuilder New() { - return new Builder(_interfaces, _properties); + return new Builder(ServiceProvider); } public RequestDelegate Build() diff --git a/test/Microsoft.AspNet.PipelineCore.Tests/BuilderTests.cs b/test/Microsoft.AspNet.PipelineCore.Tests/BuilderTests.cs index 3dfc4278..4541585c 100644 --- a/test/Microsoft.AspNet.PipelineCore.Tests/BuilderTests.cs +++ b/test/Microsoft.AspNet.PipelineCore.Tests/BuilderTests.cs @@ -8,7 +8,7 @@ public class BuilderTests [Fact] public void BuildReturnsCallableDelegate() { - var builder = new Builder(); + var builder = new Builder(null); var app = builder.Build(); var mockHttpContext = new Moq.Mock();