我正在使用ASP.NET Web API 2(即ApiController
)
我们从ValidationAttribute
派生来创建自定义验证器。我们的验证器需要依赖项。在ASP模型绑定期间,将自动为设置了ValidationAttribute
的所有属性调用验证器。
我注意到validationcontext
有一个GetService
方法。但这行不通。可能需要将其配置为在某些地方显示。
A)我的问题是,如何告诉ASP调用验证器的IsValid
方法时,在IServiceProvider
内使用validationcontext
的特定实现?
b)是否可以关闭模型绑定期间在ASP中为ValidationAttributes
进行的“自动验证”?这样,我可以使用TryValidateObject
明确控制验证。
答案 0 :(得分:0)
您是否尝试过使用服务过滤器?
[ServiceFilter(typeof(FilterClass))]
不确定asp.net mvc 4是否相同,但这是asp.net核心的实现方法:https://andrewlock.net/injecting-services-into-validationattributes-in-asp-net-core/