From e2f45c59eab74d14a70b09e4f2cce19028060e45 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Sat, 8 Feb 2014 16:03:59 -0800 Subject: [PATCH] Placing IServiceProvider on IBuilder Replaces concept of features/items on builder instance for now --- src/Microsoft.AspNet.Abstractions/IBuilder.cs | 5 +-- src/Microsoft.AspNet.PipelineCore/Builder.cs | 44 ++----------------- 2 files changed, 6 insertions(+), 43 deletions(-) diff --git a/src/Microsoft.AspNet.Abstractions/IBuilder.cs b/src/Microsoft.AspNet.Abstractions/IBuilder.cs index 778e98d404..5699bed1b4 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.PipelineCore/Builder.cs b/src/Microsoft.AspNet.PipelineCore/Builder.cs index 8e4d2f0ac0..48edba1ce2 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 @@ namespace Microsoft.AspNet.PipelineCore public IBuilder New() { - return new Builder(_interfaces, _properties); + return new Builder(ServiceProvider); } public RequestDelegate Build()