Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web API 2的Autofac IAutofacActionFilter执行顺序_C#_Asp.net Web Api2_Autofac - Fatal编程技术网

C# Web API 2的Autofac IAutofacActionFilter执行顺序

C# Web API 2的Autofac IAutofacActionFilter执行顺序,c#,asp.net-web-api2,autofac,C#,Asp.net Web Api2,Autofac,有没有办法设置在Autofac注册的web api操作筛选器上的执行顺序? 目前,如果我注册以下内容: builder.Register(x => new MyFirstAttribute(x.Resolve<IMyService>())).AsWebApiActionFilterFor<ApiController>().InstancePerRequest(); builder.Register(x => new MySecondAttribute(x.Re

有没有办法设置在Autofac注册的web api操作筛选器上的执行顺序? 目前,如果我注册以下内容:

builder.Register(x => new MyFirstAttribute(x.Resolve<IMyService>())).AsWebApiActionFilterFor<ApiController>().InstancePerRequest();
builder.Register(x => new MySecondAttribute(x.Resolve<IMyService>())).AsWebApiActionFilterFor<ApiController>().InstancePerRequest();

builder.Register(x=>new MyFirstAttribute(x.Resolve())).aswebapiactionfilter for and.

目前无法手动指定已注册筛选器的运行顺序

过滤器的解析方式与使用
IEnumerable
解析其他依赖项的方式相同。这种情况经常发生。与常规过滤器一样,它比“按XYZ顺序运行”更复杂——还需要考虑控制器与动作的作用域

那么,假设您注册了这些:

builder.RegisterType()
.AsWebApiActionFilterFor()
.InstancePerApiRequest();
builder.RegisterType,负责将
IEnumerable
集合解析为筛选器提供程序的一部分。你也可以看看事情是怎么发生的


如果需要手动指定订单,则必须将自己的扩展名写入
AutofacWebApiFilterProvider
,或者,如果扩展名不起作用,则自行滚动。如果您能以流畅的方式使其正常工作,我们很乐意。

目前无法手动指定已注册过滤器的运行顺序

过滤器的解析方式与使用
IEnumerable
解析其他依赖项的方式相同。这种情况经常发生。与常规过滤器一样,它比“按XYZ顺序运行”更复杂——还需要考虑控制器与动作的作用域

那么,假设您注册了这些:

builder.RegisterType()
.AsWebApiActionFilterFor()
.InstancePerApiRequest();
builder.RegisterType,负责将
IEnumerable
集合解析为筛选器提供程序的一部分。你也可以看看事情是怎么发生的


如果需要手动指定订单,则必须将自己的扩展名写入
AutofacWebApiFilterProvider
,或者,如果扩展名不起作用,则自行滚动。如果您能以流畅的方式让它正常工作,我们将很高兴。

可能相关:查看它,事情应该以相反的注册顺序运行(从最后到第一)。在运行测试时,您是否发现行为不一致或不为您所知?通过查看代码片段和阅读autofac文档,我不知道这一点。它以相反的顺序运行(你能指出哪一行吗)——但是什么保证这种行为不会改变为自然的注册顺序呢。如果我可以覆盖私有ActiondescriptorFilterProvider并自己设置顺序,我可以保证顺序-以相反的方式注册属性,例如,asWebApiationFilterFor(顺序:1);我更喜欢后者,或者实现它将使用的我自己的IFilterProvider。在运行测试时,您是否发现行为不一致或不为您所知?通过查看代码片段和阅读autofac文档,我不知道这一点。它以相反的顺序运行(你能指出哪一行吗)——但是什么保证这种行为不会改变为自然的注册顺序呢。如果我可以覆盖私有ActiondescriptorFilterProvider并自己设置顺序,我可以保证顺序-以相反的方式注册属性,例如,asWebApiationFilterFor(顺序:1);我更喜欢后者,或者实现它将使用的我自己的IFilterProvider。