I am trying to use IValidatableObject validation in a web api 2 context. The Validate method is getting called, but the ValidationContext parameter passed has a method called GetService which always returns null because the service provider of the validation context is never set.
From all my research, we can easily configure this in the MVC framework, but I didn't find anything on how to configure it in web api 2.
How do we set the service provider to the validation context when validating models passed to an ApiController?
Ok, I found the solution.
The problem I had was that I was trying to completely replace the
DataAnnotationsModelValidatorProvider, but the framework doesn't support that. In the end, I had to look for the current one in place and then register my custom factories which will setup the validation context that will be used in theIValidatableObject.One important note to keep in mind, there are multiple namespaces with the
DataAnnotationsModelValidatorProvider, but the one I need isSystem.Web.Http.Validation.Providers.DataAnnotationsModelValidatorProviderHere what it looks like: