ValidationHelper
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using System.Text;
namespace Polly.Utils
{
[ExcludeFromCodeCoverage]
internal static class ValidationHelper
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, typeof(TimeSpan))]
[System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "The member of options are preserved and not trimmed. See builder.AddStrategy() extension.")]
public static void ValidateObject(ResilienceValidationContext context)
{
Guard.NotNull(context, "context");
List<ValidationResult> list = new List<ValidationResult>();
if (!Validator.TryValidateObject(context.Instance, new ValidationContext(context.Instance), list, true)) {
StringBuilder stringBuilder = new StringBuilder(context.PrimaryMessage);
stringBuilder.AppendLine();
stringBuilder.AppendLine("Validation Errors:");
foreach (ValidationResult item in list) {
stringBuilder.AppendLine(item.ErrorMessage);
}
throw new ValidationException(stringBuilder.ToString());
}
}
}
}