Skip to main content
Kubernetes Made Easy! Instantly spin up best-practice clusters with GetInfra templates. Browse Now

How to disable object model validation .NET 7

After migration to .NET 7 my project's integration tests begin fail because of build-in model validation. The API Request class including not required properties such as string(?) and List<T>, were processed as mandatory and gave 400 error.

For years, I use my own validators for the requests model, its allows me more flexibility for response I return, http codes and etc.

More info for the topic can be found here

I didn't spend mush time on it but here are two solutions I found and tested:

  1. Create and register own dummy IObjectModelValidator
public class NullObjectModelValidator : IObjectModelValidator
{
    public void Validate(ActionContext actionContext,
        ValidationStateDictionary validationState, string prefix, object model)
    {

    }
}

and then add the following to Startup.cs

services.AddSingleton<IObjectModelValidator, NullObjectModelValidator>();
  1. Disable validation
 services.AddControllers(o => o.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes = true )

I'm not a big fan of dummy object in production code, rather in tests, second option was chosen.

Share this article

About the Author

Alexander Lvovich

Alexander Lvovich

Solution Architect & Software Developer | Automating & Scaling Infrastructure

💡 Working with Kubernetes, Istio, and DevOps. Got questions? Feel free to reach out!


No comments are allowed for this post