【发布时间】:2023-03-08 14:06:02
【问题描述】:
我有 MVC 和 WebAPI 过滤器属性,其参数应该提升一些操作过滤器。我们现在正在切换到 autofac,我需要转换 DI-Definition。
在 Ninject 中我有这样的东西:
Kernel.BindFilter<ShopAuthorizationMVCFilter>(System.Web.Mvc.FilterScope.Controller, 0)
.WhenControllerHas<ShopAuthorizationMVC>()
.InRequestScope()
.WithConstructorArgumentFromControllerAttribute<ShopAuthorizationMVC>("rechte", o => o.Rechte);
我可以像这样装饰动作和控制器:
[ShopAuthorizationMVC(RightsEnum.CanAccessMycontroller)]
public class MyController : Controller {}
这适用于 Ninject,但我完全不知道如何在 Autofac 中编写它。
到目前为止我得到的是:
builder.Register(c =>
new ShopAuthorizationMVCFilter(c.Resolve<IAuthClass>(), default(RightsEnum[])))
.AsActionFilterFor<Controller>()
.InstancePerRequest();
但我不知道如何 a) 仅使用我的 filterattribute 将该规则应用于控制器(和\或操作),并且 b) 移交参数。
【问题讨论】:
-
嘿,你有没有找到解决这个问题的方法?!我目前正在从事的项目中遇到完全相同的问题并尽可能搜索,我只是找不到解决方案......
-
很遗憾没有,抱歉
标签: ninject autofac actionfilterattribute