Using AutoFac to register open generic service types
This commit is contained in:
parent
930986d6a2
commit
a5cb050b97
|
|
@ -2,7 +2,9 @@
|
|||
using System;
|
||||
using Autofac;
|
||||
using Microsoft.AspNet.Abstractions;
|
||||
using Microsoft.AspNet.DependencyInjection;
|
||||
using Microsoft.AspNet.DependencyInjection.Autofac;
|
||||
using Microsoft.AspNet.DependencyInjection.NestedProviders;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
using Microsoft.AspNet.Routing;
|
||||
|
||||
|
|
@ -18,6 +20,10 @@ namespace MvcSample.Web
|
|||
AutofacRegistration.Populate(containerBuilder, builder.ServiceProvider, services);
|
||||
containerBuilder.RegisterInstance<PassThroughAttribute>(new PassThroughAttribute());
|
||||
|
||||
// Temporary until we have support for open generics in our DI system.
|
||||
containerBuilder.RegisterGeneric(typeof(NestedProviderManager<>)).As(typeof(INestedProviderManager<>));
|
||||
containerBuilder.RegisterGeneric(typeof(NestedProviderManagerAsync<>)).As(typeof(INestedProviderManagerAsync<>));
|
||||
|
||||
var serviceProvider = containerBuilder.Build().Resolve<IServiceProvider>();
|
||||
|
||||
var routes = new RouteCollection()
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
#if NET45
|
||||
|
||||
#if NET45
|
||||
using Autofac;
|
||||
using System;
|
||||
using Microsoft.AspNet.Abstractions;
|
||||
using Microsoft.AspNet.ConfigurationModel;
|
||||
using Microsoft.AspNet.DependencyInjection;
|
||||
using Microsoft.AspNet.DependencyInjection.Autofac;
|
||||
using Microsoft.AspNet.DependencyInjection.NestedProviders;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
using Microsoft.AspNet.Routing;
|
||||
using Microsoft.Net.Runtime;
|
||||
using Owin;
|
||||
|
||||
namespace MvcSample
|
||||
|
|
@ -37,6 +37,10 @@ namespace MvcSample
|
|||
AutofacRegistration.Populate(containerBuilder, _serviceProvider, services);
|
||||
containerBuilder.RegisterInstance<PassThroughAttribute>(new PassThroughAttribute());
|
||||
|
||||
// Temporary until we have support for open generics in our DI system.
|
||||
containerBuilder.RegisterGeneric(typeof(NestedProviderManager<>)).As(typeof(INestedProviderManager<>));
|
||||
containerBuilder.RegisterGeneric(typeof(NestedProviderManagerAsync<>)).As(typeof(INestedProviderManagerAsync<>));
|
||||
|
||||
var serviceProvider = containerBuilder.Build().Resolve<IServiceProvider>();
|
||||
|
||||
var routes = new RouteCollection()
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNet.ConfigurationModel;
|
||||
using Microsoft.AspNet.DependencyInjection;
|
||||
using Microsoft.AspNet.DependencyInjection.NestedProviders;
|
||||
using Microsoft.AspNet.Mvc.Filters;
|
||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||
using Microsoft.AspNet.Mvc.Razor;
|
||||
|
|
@ -38,11 +38,6 @@ namespace Microsoft.AspNet.Mvc
|
|||
yield return describe.Transient<IVirtualPathViewFactory, VirtualPathViewFactory>();
|
||||
yield return describe.Transient<IViewEngine, RazorViewEngine>();
|
||||
|
||||
// This is temporary until DI has some magic for it
|
||||
yield return describe.Transient<INestedProviderManager<ActionDescriptorProviderContext>,
|
||||
NestedProviderManager<ActionDescriptorProviderContext>>();
|
||||
yield return describe.Transient<INestedProviderManager<ActionInvokerProviderContext>,
|
||||
NestedProviderManager<ActionInvokerProviderContext>>();
|
||||
yield return describe.Transient<INestedProvider<ActionDescriptorProviderContext>,
|
||||
ReflectedActionDescriptorProvider>();
|
||||
yield return describe.Transient<INestedProvider<ActionInvokerProviderContext>,
|
||||
|
|
@ -63,7 +58,6 @@ namespace Microsoft.AspNet.Mvc
|
|||
|
||||
yield return describe.Transient<IInputFormatter, JsonInputFormatter>();
|
||||
|
||||
yield return describe.Transient<INestedProviderManager<FilterProviderContext>, NestedProviderManager<FilterProviderContext>>();
|
||||
yield return describe.Transient<INestedProvider<FilterProviderContext>, DefaultFilterProvider>();
|
||||
|
||||
yield return describe.Transient<IModelValidatorProvider, DataAnnotationsModelValidatorProvider>();
|
||||
|
|
|
|||
Loading…
Reference in New Issue