Was ist der Zweck der Suffixe .RequiredError, .FormatError, etc
-
13-09-2019 - |
Frage
die Oxite Quellcode lesen, habe ich festgestellt, dass Validatoren schlechte Eigenschaft Name mit einigen Suffixen (RequiredError, MaxLengthExceededError, InvalidError, FormatError) speichern
validationState.Errors.Add(CreateValidationError(user.Name, "Name.RequiredError", "Name is not set"));
validationState.Errors.Add(CreateValidationError(user.Name, "Name.MaxLengthExceededError", "Username must be less than or equal to {0} characters long.", 256));
validationState.Errors.Add(CreateValidationError(user.Email, "Email.InvalidError", "Email is invalid."));
Was ist der Zweck von deren Suffixe? Wie sie verwendet?
Lösung
Meine Vermutung ist, dass sie konstant, maschinenfreundliche Werte sind, die eindeutig verwendet werden können, um den Fehler zu identifizieren und kann verwendet werden lokalisierte Ressourcen für Ihre globalisierten Website abgerufen werden.
Ich bin ein gutes guesser:
protected ValidationError CreateValidationError(
object value, string validationKey, string validationMessage,
params object[] validationMessageParameters)
{
if (validationMessageParameters != null &&
validationMessageParameters.Length > 0)
{
validationMessage = string.Format(
validationMessage, validationMessageParameters);
}
return new ValidationError(
validationKey,
value,
new InvalidOperationException(
localize(validationKey, validationMessage))
);
}
private string localize(string key, string defaultValue)
{
if (phrases == null)
phrases = localizationService.GetTranslations();
Phrase foundPhrase = phrases
.Where(p => p.Key == key && p.Language == site.LanguageDefault)
.FirstOrDefault();
if (foundPhrase != null)
return foundPhrase.Value;
return defaultValue;
}
Curious, though. Da Ausnahmen sollten in der Regel nicht lokalisiert werden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow