public sealed class PeValidator : IPeValidator
{
private readonly IEnumerable<IValidationRule> _rules;
public PeValidator(IEnumerable<IValidationRule> rules)
{
_rules = rules;
}
public async Task<IReadOnlyList<ValidationResult>> ValidateAsync(PeImageInfo peInfo, CancellationToken cancellationToken)
{
var results = new List<ValidationResult>();
foreach (var rule in _rules)
{
cancellationToken.ThrowIfCancellationRequested();
results.Add(await rule.ValidateAsync(peInfo, cancellationToken).ConfigureAwait(false));
}
return results;
}
}