---
title: ValidationResult
summary: API reference for ValidationResult.
status: draft
owner: saif-docgen
last_reviewed: 2026-09-15
library: SAIF.Framework.Common
reference_type: package
---

# ValidationResult

Serializable, mutable implementation of `IValidationResult` that aggregates validation failures and free-text messages and derives its `IsValid` flag from whether any failures are present.

## Purpose
- Serializable, mutable implementation of `IValidationResult` that aggregates validation failures and free-text messages and derives its `IsValid` flag from whether any failures are present.

## Context
- Namespace: `SAIF.Common`
- Assembly/package: `SAIF.Framework.Common`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| Errors | `public IList<ValidationFailure> Errors { get; }` | The collected list of field-level validation failures. ([BR-046](../../business-rules.md#br-046-a-validationresult-always-exposes-non-null-errors-and-messages-collections%2C-even-when-constructed-from-a-null-failure-sequence)) |
| Messages | `public IList<string> Messages { get; }` | Free-text, non-field-specific validation messages. |
| IsValid | `public virtual bool IsValid { get; }` | True only when `Errors` is empty; overridable by subclasses that add extra validity rules. ([BR-047](../../business-rules.md#br-047-a-validation-result-is-valid-if-and-only-if-it-holds-no-errors)) |
| ValidationResult() | `public ValidationResult()` | Constructs an empty, initially-valid result. |
| ValidationResult(IEnumerable<ValidationFailure> failures) | `public ValidationResult(IEnumerable<ValidationFailure> failures)` | Constructs a result pre-populated with the given failures. |


## Sources
- `Common/SAIF.Common/Classes/ValidationResult.cs`
