접미사의 목적은 무엇입니까.
-
13-09-2019 - |
문제
Oxite 소스 코드를 읽으면 유효성 검사기가 접미사 (Emergror, MaxLengthexeceedError, 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