サフィックス.RequiredError、.FormatErrorなどの目的は何ですか
-
13-09-2019 - |
質問
Oxiteのソースコードを読んで、私はバリデータは、いくつかのサフィックス(RequiredError、MaxLengthExceededError、InvalidError、FormatError)と悪いプロパティ名を保存することを見出した。
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."));
そのサフィックスの目的は何ですか?彼らはどのように使用?
解決
私の推測では、彼らが独自にエラーを識別するために使用することができ、あなたのグローバル化サイトのローカライズされたリソースを取得するために使用できる定数、機械に優しい値だということです。
<時間>私は良い推測をしています:
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;
}
<時間>
しかし、好奇心が強いです。例外は、一般的にローカライズするべきではありませんので。
所属していません StackOverflow