사용자가 일반적으로 사용하는 클래스이다. Castle.Windsor component에는 IResourceProviderFactory를 정의하면된다.
示例#1
0
        /// <summary>
        /// Database 로부터 지역 리소스 정보를 얻는다.
        /// </summary>
        /// <param name="classKey"></param>
        /// <param name="resourceKey"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public static object GetLocalResourceObject(string classKey, string resourceKey, CultureInfo culture = null)
        {
            culture = culture ?? CultureInfo.CurrentCulture;

            if (IsDebugEnabled)
            {
                log.Debug("Get Local Resource object. classKey=[{0}], resourceKey=[{1}], culture=[{2}]",
                          classKey, resourceKey, culture);
            }

            var value = ResourceProvider.GetObject(classKey, resourceKey, culture);

            if (IsDebugEnabled)
            {
                log.Debug("Get Local Resource object. value=[{0}]", value);
            }

            return(value);
        }
示例#2
0
        /// <summary>
        /// 외부 Resource Assembly로부터 지정한 리소스 키에 해당하는 값을 가져온다.
        /// </summary>
        public static object GetGlobalResourceObject(string classKey, string resourceKey, CultureInfo culture = null)
        {
            culture = CultureTool.GetOrCurrentUICulture(culture);

            if (IsDebugEnabled)
            {
                log.Debug("전역 리소스 값을 로드합니다... classKey=[{0}], resourceKey=[{1}], culture=[{2}]",
                          classKey, resourceKey, culture);
            }

            var value = ResourceProvider.GetObject(classKey, resourceKey, culture);

            if (IsDebugEnabled)
            {
                log.Debug("전역 리소스 값을 로드했습니다!!! classKey=[{0}], resourceKey=[{1}], culture=[{2}], value=[{3}]",
                          classKey, resourceKey, culture, value);
            }

            return(value);
        }
        private string GetParameterValue(string paramKey, CultureInfo culture)
        {
            if (IsDebugEnabled)
            {
                log.Debug("Get Parameter value. paramKey=[{0}], culuture=[{1}]", paramKey, culture);
            }

            if (paramKey.IsWhiteSpace())
            {
                return(null);
            }

            string result;

            string resourceFile, resourceKey;

            StringResourceTool.ParseClassKey(paramKey, out resourceFile, out resourceKey);

            // External Resource Provider의 예로 들면
            // 다른 resource file에 있을 시 (resource assembly에는 여러개의 resource file이 존재하고,
            // 다른 resource file의 키값을 조회하기 위해 ${filename|resourceKey} 형태를 취할 수 있다.
            //
            // Resource : ${resourceFile|resourceKey}
            if (resourceFile != StringResourceTool.DEFAULT_ASSEMBLY_NAME)
            {
                result = ResourceProvider.GetString(AssemblyName + StringResourceTool.CLASS_KEY_DELIMITER + resourceFile,
                                                    resourceKey,
                                                    culture);
            }
            else
            {
                result = base.GetObject(paramKey, culture) as string;
            }

            if (IsDebugEnabled)
            {
                log.Debug("Parameter에 해당하는 값을 조회했습니다. paramKey=[{0}], culture=[{1}], paramValue=[{2}]", paramKey, culture, result);
            }

            return(result);
        }
示例#4
0
        public void NHResourceTest()
        {
            if (UnitOfWork.IsStarted == false)
            {
                UnitOfWork.Start();
            }

            _factory.GlobalResourceProviderName = "NHResourceProvider";

            string classKey = @"OtherResources|Glossary";

            Console.WriteLine(ResourceProvider.GetString(classKey, "HomePage"));
            Console.WriteLine(ResourceProvider.GetString(classKey, "HomePage", new CultureInfo("ko")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "HomePage", new CultureInfo("ko-KR")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "HomePage", new CultureInfo("en")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "HomePage", new CultureInfo("en-US")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "HomePage", new CultureInfo("en-CA")));

            Assert.IsNotNull(ResourceProvider.GetString(classKey, "HomePage", new CultureInfo("en-CA")));

            Console.WriteLine(ResourceProvider.GetString(classKey, "Welcome"));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Welcome", new CultureInfo("ko")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Welcome", new CultureInfo("ko-KR")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Welcome", new CultureInfo("en")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Welcome", new CultureInfo("en-US")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Welcome", new CultureInfo("en-CA")));

            Assert.IsNotNull(ResourceProvider.GetString(classKey, "Welcome", new CultureInfo("en-CA")));

            classKey = @"OtherResources|CommonTerms";

            Console.WriteLine(ResourceProvider.GetString(classKey, "Hello"));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Hello", new CultureInfo("ko")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Hello", new CultureInfo("ko-KR")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Hello", new CultureInfo("en")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Hello", new CultureInfo("en-US")));
            Console.WriteLine(ResourceProvider.GetString(classKey, "Hello", new CultureInfo("en-CA")));

            Assert.IsNotNull(ResourceProvider.GetString(classKey, "Hello", new CultureInfo("en-CA")));
        }