using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public static void Main()
var config1 = new SomeConfiguration
SomeStringArray = new string[0],
Console.WriteLine(IsValid(config1, out _));
var config2 = new SomeConfiguration
Console.WriteLine(IsValid(config2, out _));
private static bool IsValid(object validatableObject, out List<ValidationResult> result)
var validationContext = new ValidationContext(validatableObject);
var validationResults = new List<ValidationResult>();
if (Validator.TryValidateObject(validatableObject, validationContext, validationResults))
result = validationResults;
private class SomeConfiguration : IValidatableObject
public string[] SomeStringArray { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
var results = new List<ValidationResult>();
if (SomeStringArray.Length < 1)
results.Add(new ValidationResult("SomeStringArray doesn't contain enough elements."));