-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathAutoValidationEndpointsConfiguration.cs
More file actions
27 lines (25 loc) · 1.5 KB
/
AutoValidationEndpointsConfiguration.cs
File metadata and controls
27 lines (25 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Http.HttpResults;
using SharpGrip.FluentValidation.AutoValidation.Endpoints.Results;
namespace SharpGrip.FluentValidation.AutoValidation.Endpoints.Configuration
{
public class AutoValidationEndpointsConfiguration
{
/// <summary>
/// Holds the overridden result factory. This property is meant for infrastructure and should not be used by application code.
/// </summary>
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
public Type? OverriddenResultFactory { get; private set; }
/// <summary>
/// Overrides the default result factory with a custom result factory. Custom result factories are required to implement <see cref="IFluentValidationAutoValidationResultFactory"/>.
/// The default result factory returns the validation errors wrapped in a <see cref="ValidationProblem"/> object.
/// </summary>
/// <see cref="FluentValidationAutoValidationDefaultResultFactory"/>
/// <typeparam name="TResultFactory">The custom result factory implementing <see cref="IFluentValidationAutoValidationResultFactory"/>.</typeparam>
public void OverrideDefaultResultFactoryWith<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TResultFactory>() where TResultFactory : IFluentValidationAutoValidationResultFactory
{
OverriddenResultFactory = typeof(TResultFactory);
}
}
}