/// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="getParameter"></param>
        /// <param name="restartAppDomainOnChange"></param>
        /// <returns></returns>
        public override T GetConfig <T>(IConfigParameter getParameter, bool restartAppDomainOnChange)
        {
            Check.Argument.IsNotNull("getParameter", getParameter);
            Check.Argument.IsAssignableFrom("getParameter", getParameter, typeof(DotNetConfigGetParameter));

            T config = GetConfigFromCache <T>(getParameter);

            if (config == null)
            {
                lock (this.SyncLock)
                {
                    config = GetConfigFromCache <T>(getParameter);
                    if (config == null)
                    {
                        DotNetConfigGetParameter parameter = getParameter as DotNetConfigGetParameter;
                        Check.Argument.IsTrue(parameter.HasFiles, "getParameter", R.ConfigFileNotSpecified);

                        System.Configuration.Configuration configuration = GetConfiguration(parameter.Files[0]);
                        config = configuration.GetSection(parameter.SectionName) as T;
                        Check.Argument.IsNotNull("getParameter", config, R.DotNetConfigCannotBeResolved, parameter.Files[0], parameter.SectionName);

                        AddConfigToCache(getParameter as IConfigParameter, config);
                        SetupWacher(new DotNetConfigChangeWatcher(parameter, restartAppDomainOnChange));
                    }
                }
            }

            return(config);
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public override T GetConfig <T>()
        {
            DotNetConfigFileAttribute attribute = AttributeHelper.GetConfigAttribute <DotNetConfigFileAttribute>(typeof(T));

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

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

            return(GetConfig <T>(getParameter, attribute.RestartAppDomainOnChange));
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override DateTime GetCurrentLastWriteTime()
        {
            DateTime lastWriteTime    = DateTime.MinValue;
            DateTime lastWriteTimeMax = DateTime.MinValue;

            DotNetConfigGetParameter getParameter = this.GetParameter as DotNetConfigGetParameter;

            string lastFilePaths = getParameter.FilePaths;

            getParameter.RefreshFiles();
            string currentFilePaths = getParameter.FilePaths;

            if (lastFilePaths == currentFilePaths)
            {
                foreach (string file in getParameter.Files)
                {
                    if (File.Exists(file))
                    {
                        lastWriteTime = File.GetLastWriteTime(file);
                        if (lastWriteTimeMax.CompareTo(lastWriteTime) == -1)
                        {
                            lastWriteTimeMax = lastWriteTime;
                        }
                    }
                    else
                    {
                        lastWriteTimeMax = DateTime.MaxValue;
                        break;
                    }
                }
            }
            else
            {
                lastWriteTimeMax = DateTime.MaxValue;
            }

            return(lastWriteTimeMax);
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="getParameter"></param>
 /// <param name="restartAppDomainOnChange"></param>
 public DotNetConfigChangeWatcher(DotNetConfigGetParameter getParameter, bool restartAppDomainOnChange)
     : base(getParameter, restartAppDomainOnChange)
 {
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="getParameter"></param>
 public DotNetConfigChangeWatcher(DotNetConfigGetParameter getParameter)
     : base(getParameter)
 {
 }
Exemple #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="getParameter"></param>
 /// <param name="restartAppDomainOnChange"></param>
 public DotNetConfigChangeWatcher(DotNetConfigGetParameter getParameter, bool restartAppDomainOnChange)
     : base(getParameter, restartAppDomainOnChange)
 {
 }
Exemple #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="getParameter"></param>
 public DotNetConfigChangeWatcher(DotNetConfigGetParameter getParameter)
     : base(getParameter)
 {
 }