我正在做 ASP.NET Web API 2(即ApiController
)
我们从ValidationAttribute
派生到创建自定义验证器。我们的验证器需要一个依赖关系。在 ASP 模型绑定期间,将自动为设置ValidationAttribute
的所有属性调用验证程序。
我注意到validationcontext
有一个GetService
的方法。但它不起作用。可能需要将其配置为在某个地方查找。
A) 我的问题是,我如何告诉 ASP 在调用验证器的IsValid
方法时,在validationcontext
中使用IServiceProvider
的特定实现?
b) 有没有办法关闭模型绑定期间发生的 ASP 中ValidationAttributes
的"自动验证"?这样我就可以使用TryValidateObject
显式控制验证。
您是否尝试过使用服务过滤器?
[ServiceFilter(typeof(FilterClass))]
不确定 asp.net mvc 4 是否相同,但这就是它是如何完成的 asp.net 核心:https://andrewlock.net/injecting-services-into-validationattributes-in-asp-net-core/