2016-04-06 10 views
1

起動時にフィルタを登録するときに、どのようにIServiceProviderのインスタンスを渡すことができますか?Asp.net 5 mvc 6アクションフィルタとiserviceProviderの依存関係

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) –

答えて

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

}); 

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

はそれを私にビート。これがどのように機能するかについての良い説明があります(そして代替のアプローチ)[ここ](http://www.strathweb.com/2015/06/action-filters-service-filters-type-filters-asp-net-5 -mvc-6 /)。 – NightOwl888

関連する問題