Exemplo n.º 1
0
        /// <summary>
        /// 設定ファイルに保存します。
        /// </summary>
        public void Save()
        {
            try
            {
                // 保存はキャンセルできます。
                var e = new SettingsSavingEventArgs();
                NotifySettingsSaving(e);
                if (e.Cancel)
                {
                    return;
                }

                lock (SyncRoot)
                {
                    // ファイルのあるディレクトリを事前に作成します。
                    var dirName = Path.GetDirectoryName(Location);

                    // 例外が帰って来たら諦める。
                    Util.CreateDirectoryRecursive(dirName);

                    using (var tmp = new PassingTmpFile(Location))
                    {
                        DoSerialize(tmp.TmpFileName);

                        tmp.Success();
                    }
                }
            }
            catch (Exception ex)
            {
                Log.ErrorException(ex,
                                   "{0}: 設定ファイルの保存に失敗しました。", Location);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 設定が保存される前に通知します。
        /// </summary>
        protected virtual void NotifySettingsSaving(SettingsSavingEventArgs e)
        {
            var handler = SettingsSaving;

            if (handler != null)
            {
                Util.SafeCall(() =>
                              handler(this, e));
            }

            OnSettingsSaving(this, e);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 設定が保存される前に呼ばれます。
 /// </summary>
 protected virtual void OnSettingsSaving(object sender, SettingsSavingEventArgs e)
 {
 }