配置验证上下文以使用 DI 容器



我正在做 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/

最新更新