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?

War es hilfreich?

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
scroll top