Beispiel #1
0
        /// <summary>
        /// Get config file definition by attribute.
        /// </summary>
        /// <param name="attribute">Config file Attribute.</param>
        /// <returns>Config file definition.</returns>
        public IConfigFileDefinition GetConfigFileDefinitionByAttribute(ConfigFileAttribute attribute)
        {
            var configDefinition = new ConfigFileDefinition();

            configDefinition.Name     = attribute.Name;
            configDefinition.FilePath = this.BuildConfigFilePath(attribute.FilePath);
            configDefinition.Format   = attribute.Format;

            return(configDefinition);
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public override T GetMergedConfig <T>()
        {
            ConfigFileAttribute attribute = AttributeHelper.GetConfigAttribute <ConfigFileAttribute>(typeof(T));

            if (attribute == null)
            {
                ConfigThrowHelper.ThrowConfigException(
                    R.ConfigError_NoConfigAttribute, typeof(T).FullName, typeof(ConfigFileAttribute).FullName);
            }

            ConfigSettings        configSettings = FrameworkConfig.GetConfig <ConfigSettings>();
            string                configFilePath = configSettings.GetConfigFilePath <T>();
            XmlConfigGetParameter getParameter   = new XmlConfigGetParameter(configFilePath, attribute.IncludeSubdirectories);

            return(GetMergedConfig <T>(getParameter, attribute.RestartAppDomainOnChange));
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public override T GetConfig <T>()
        {
            ConfigFileAttribute attribute = AttributeHelper.GetConfigAttribute <ConfigFileAttribute>(typeof(T));

            if (attribute == null)
            {
                ConfigThrowHelper.ThrowConfigException(
                    R.ConfigError_NoConfigAttribute, typeof(T).FullName, typeof(ConfigFileAttribute).FullName);
            }

            ConfigSettings configSettings = FrameworkConfig.GetConfig <ConfigSettings>();
            string         configFilePath = string.Empty;

            switch (attribute.ConfigPathType)
            {
            case ConfigPathType.FullPhysicalPath:
            {
                configFilePath = attribute.FileName;
            }
            break;

            case ConfigPathType.ServerPath:
                if (HttpContext.Current == null)
                {
                    configFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, attribute.FileName.Replace("~/", ""));
                    break;
                }
                configFilePath = HttpContext.Current.Server.MapPath(attribute.FileName);
                break;

            default:
            {
                configFilePath = configSettings.GetConfigFilePath <T>();
            }
            break;
            }
            XmlConfigGetParameter getParameter = new XmlConfigGetParameter(configFilePath, attribute.IncludeSubdirectories);

            return(GetConfig <T>(getParameter, attribute.RestartAppDomainOnChange));
        }