/// <summary> /// 내부적으로 문화권에 맞는 리소스 정보를 가져옵니다. /// </summary> private string GetResourceInternal(CultureInfo culture, string resourceKey) { var resourceValues = new List<string>(); var result = string.Empty; if(culture.IsNullCulture()) return result; if(IsDebugEnabled) log.Debug("문화권에 맞는 리소스 정보를 가져옵니다... culture=[{0}], resourceKey=[{1}]", culture, resourceKey); try { using(var cmd = GetResourceCommand(culture.Name, resourceKey)) using(var reader = Ado.ExecuteReader(cmd)) { while(reader.Read()) resourceValues.Add(reader.AsString("ResourceValue")); } } catch(Exception ex) { if(log.IsWarnEnabled) { log.Warn("Database에서 Resource정보를 얻는데 실패했습니다. 빈 문자열을 반환합니다. culture=[{0}], resourceKey=[{1}]", culture, resourceKey); log.Warn(ex); } } if(resourceValues.Count == 0) { result = GetResourceInternal(culture.Parent, resourceKey); } else if(resourceValues.Count == 1) { result = resourceValues[0]; } else { throw new InvalidOperationException("Duplicated values in resourceKey=" + resourceKey); } return result; }