Apariencia
Catálogos y mensajes de validación
Catálogos de mensajes
Para no repetir la clave y el localizador, agrupa los mensajes de un área en una clase propia o usa MessageFactory.
csharp
public sealed class ErrorMessages(IMessageLocalizer localizer)
{
public Message Required(string field) =>
Message.FromResource("error.required", localizer)
.With("field", field);
}El catálogo mantiene las claves cerca de su significado de negocio y deja a los consumidores trabajar con mensajes ya preparados.
Mensajes asociados a campos
Las extensiones de validación, como ForField(...), expresan convenciones comunes y completan parámetros de forma consistente.
csharp
var message = Message
.FromResource("error.min_length", localizer)
.ForField("Contraseña")
.With("min", 8);Usa una plantilla por tipo de incumplimiento y proporciona los datos variables como parámetros. El validador puede conservar un código estable para integraciones y un mensaje localizado para la persona usuaria.
Guía de decisión
| Necesidad | Usa |
|---|---|
| Texto único en código | Message.Create(...) o conversión desde string |
| Texto traducible | Message.FromResource(...) |
| Datos dentro de una plantilla | With(...) |
| Grupo reutilizable de mensajes | MessageFactory o un catálogo propio |
| Mensaje asociado a un campo | ForField(...) |