2016-04-06 23 views
1

Filtrenizi başlangıçta kaydederken, IServiceProvider örneğinde nasıl geçebilirsiniz?Asp.net 5 mvc iserviceProvider bağımlılığı ile 6 eylem filtresi

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc().AddMvcOptions(o => 
     { 

      o.Filters.Add(new MyFilterAttribute(???)); //how to get IServiceProvider 
     }); 
} 

public class MyFilterAttribute : ActionFilterAttribute 
{ 
    public MyFilterAttribute(IServiceProvider serviceProvider) 
    { 
    var myService = (IMyService)serviceProvider.GetService(typeof(IMyService)); 
    } 
} 
+0

(https://github.com/aspnet/Mvc/issues/4167) –

cevap

1
services.AddMvc().AddMvcOptions(o => 
{ 
    o.Filters.Add(new ServiceFilterAttribute(typeof(MyFilterAttribute))); 

}); 

factory.RegisterType(typeof(MyFilterAttribute)).InstancePerDependency(); 
+0

beni alt [ilgili olabilir]. Bunun nasıl çalıştığına dair iyi bir açıklama var (ve alternatif bir yaklaşım) [burada] (http://www.strathweb.com/2015/06/action-filters-service-filters-type-filters-asp-net-5 -mvc-6 /). – NightOwl888