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

时间:2019-03-26 22:53:59

标签: asp.net asp.net-mvc-4 asp.net-web-api

我正在使用ASP.NET Web API 2(即ApiController

我们从ValidationAttribute派生来创建自定义验证器。我们的验证器需要依赖项。在ASP模型绑定期间,将自动为设置了ValidationAttribute的所有属性调用验证器。

我注意到validationcontext有一个GetService方法。但这行不通。可能需要将其配置为在某些地方显示。

A)我的问题是,如何告诉ASP调用验证器的IsValid方法时,在IServiceProvider内使用validationcontext的特定实现?

b)是否可以关闭模​​型绑定期间在ASP中为ValidationAttributes进行的“自动验证”?这样,我可以使用TryValidateObject明确控制验证。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用服务过滤器?

[ServiceFilter(typeof(FilterClass))]

不确定asp.net mvc 4是否相同,但这是asp.net核心的实现方法:https://andrewlock.net/injecting-services-into-validationattributes-in-asp-net-core/