本文整理汇总了C#中System.Globalization.CultureInfo.GetCulture方法的典型用法代码示例。如果您正苦于以下问题:C# CultureInfo.GetCulture方法的具体用法?C# CultureInfo.GetCulture怎么用?C# CultureInfo.GetCulture使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Globalization.CultureInfo
的用法示例。
在下文中一共展示了CultureInfo.GetCulture方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetObject
///<summary>
/// 키 및 culture에 대한 리소스 개체를 반환합니다.
///</summary>
///<returns>
///<paramref name="resourceKey" /> 및 <paramref name="culture" />에 대한 리소스 값을 포함하는 <see cref="T:System.Object" />입니다.
///</returns>
///<param name="resourceKey">
/// 특정 리소스를 식별하는 키입니다.
/// </param>
///<param name="culture">
/// 리소스의 지역화된 값을 식별하는 culture입니다.
///</param>
/// <returns>resource value, if not exists, return null</returns>
public override object GetObject(string resourceKey, CultureInfo culture) {
if(IsDebugEnabled)
log.Debug(@"리소스 값을 조회합니다. resourceKey=[{0}], culture=[{1}]", resourceKey, culture);
culture = culture.GetCulture();
var result = base.GetObject(resourceKey, culture);
// resource value가 문자열일때만 parameter를 치환한다.
//
if(result != null && result is string && ((string)result).Contains(StringResourceTool.PARAM_REF_START))
result = GetExpanded(resourceKey, culture, (string)result);
if(IsDebugEnabled)
log.Debug("리소스 값을 조회했습니다. resourceKey=[{0}], culture=[{1}], value=[{2}]", resourceKey, culture, result);
return result;
}
示例2: GetResource
/// <summary>
/// 리소스 값 얻기
/// </summary>
public string GetResource(CultureInfo culture, string resourceKey) {
if(IsDebugEnabled)
log.Debug("리소스 얻기... resourceType=[{0}], culture=[{1}], resourceKey=[{2}]", ResourceName, culture, resourceKey);
string resourceValue;
try {
culture = culture.GetCulture();
// 지정된 문화권에 해당 키가 정의되어 있지 않다면, 상위 문화권에서 찾는다.
//
resourceValue = GetResourceInternal(culture, resourceKey);
}
catch(Exception ex) {
if(log.IsWarnEnabled) {
log.Warn("리소스를 얻는데 실패했습니다. 예외를 발생시키지는 않고, 빈 문자열을 반환합니다. culture=[{0}], resourceKey=[{1}", culture, resourceKey);
log.Warn(ex);
}
resourceValue = string.Empty;
}
if(IsDebugEnabled)
log.Debug("리소스를 얻었습니다. resourceType=[{0}], culture=[{1}], resourceKey=[{2}], resourceValue=[{3}]",
ResourceName, culture, resourceKey, resourceValue);
return resourceValue;
}
示例3: GetObject
///<summary>
/// 키 및 culture에 대한 리소스 개체를 반환합니다.
///</summary>
///<returns>
///<paramref name="resourceKey" /> 및 <paramref name="culture" />에 대한 리소스 값을 포함하는 <see cref="T:System.Object" />입니다.
///</returns>
///<param name="resourceKey">
/// 특정 리소스를 식별하는 키입니다.
/// </param>
///<param name="culture">
/// 리소스의 지역화된 값을 식별하는 culture입니다.
///</param>
/// <returns>resource value, if not exists, return null</returns>
public override object GetObject(string resourceKey, CultureInfo culture) {
resourceKey.ShouldNotBeWhiteSpace("resourceKey");
if(IsDebugEnabled)
log.Debug("Get Resource value... resourceKey=[{0}], culture=[{1}], AssemblyName=[{2}], ResourceName=[{3}]",
resourceKey, culture, AssemblyName, ResourceName);
culture = culture.GetCulture();
// 캐시 확인
Hashtable resourceValues = null;
if(_resourcesCache.TryGetValue(culture, out resourceValues)) {
if(resourceValues.ContainsKey(resourceKey))
return resourceValues[resourceKey];
}
// DB에서 해당 정보 조회
var result = Repository.GetResource(culture, resourceKey);
// 캐시에 저장
lock(_syncLock) {
if(_resourcesCache.TryGetValue(culture, out resourceValues) == false) {
resourceValues = new Hashtable();
_resourcesCache.Add(culture, resourceValues);
}
// NOTE: MultiThread 상태에서 lock이 걸려 있어도, resourceValues에 기존 key가 있을 경우에는 넣지 않는다!!!
//
if(resourceValues.ContainsKey(resourceKey) == false)
resourceValues.Add(resourceKey, result);
}
return result;
}