Exemple #1
0
        private void DoRefresh(Object state)
        {
            if (_reading)
            {
                return;
            }

            var fileName = FileName.GetBasePath();
            var fi       = FileName.AsFile();

            if (!fi.Exists)
            {
                return;
            }

            fi.Refresh();
            if (_lastTime.Year > 2000 & fi.LastWriteTime <= _lastTime)
            {
                return;
            }
            _lastTime = fi.LastWriteTime;

            XTrace.WriteLine("配置文件改变,重新加载 {0}", fileName);

            _reading = true;
            try
            {
                var section = new ConfigSection {
                };
                OnRead(fileName, section);
                Root = section;

                foreach (var item in _models)
                {
                    base.Bind(item.Key, false, item.Value);
                }
            }
            catch (Exception ex)
            {
                XTrace.WriteException(ex);
            }
            finally
            {
                _reading = false;
            }
        }