C# 如何在动作过滤器中扩展依赖性注入?
启动时,我已设置我的操作过滤器C# 如何在动作过滤器中扩展依赖性注入?,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,启动时,我已设置我的操作过滤器 services.AddScoped<CheckThisAttribute>(); 并在控制器上通过 [ServiceFilter(typeof(CheckThisAttribute))] public class MyController : Controller { } 正如您可能已经注意到的,我在构造函数中将name参数设置为可选的。 如果我不这样做,我将得到运行时错误。上下文是通过DI传递的,但名称不是 我是否可以扩展此操作筛选器,以便还可
services.AddScoped<CheckThisAttribute>();
并在控制器上通过
[ServiceFilter(typeof(CheckThisAttribute))]
public class MyController : Controller
{
}
正如您可能已经注意到的,我在构造函数中将name参数设置为可选的。
如果我不这样做,我将得到运行时错误。上下文是通过DI传递的,但名称不是
我是否可以扩展此操作筛选器,以便还可以从控制器传递名称?
差不多
[ServiceFilter(typeof(CheckThisAttribute(name="Something")))]
使用ServiceFilterAttribute无法实现该结果 相反,请尝试TypeFilterAttribute,它将如下所示:
[TypeFilter(typeof(CheckThisAttribute),
Arguments = new object[] { "Method 'Hi' called" })]
以下是文档的链接:
[TypeFilter(typeof(CheckThisAttribute),
Arguments = new object[] { "Method 'Hi' called" })]