Утилизация FileSystemWatcher

Поэтому я понимаю, что всякий раз, когда используется класс, который реализует IDisposable, его родитель также должен реализовывать интерфейс IDisposable. (FileWatcher с использованием FileSystemWatcher)

Итак, когда вы используете FileSystemWatcher, как правильно избавиться от FileSystemWatcher? Я хочу, чтобы FileWatcher не удалялся / (смотрел), пока приложение не закрылось.

Буду ли я использовать шаблон ответственного владельца (попробовать / наконец) или что-то еще? Должен ли мой FileWatcher также реализовать IDisposable? Я не смогу использовать использование {}, так как этот fileWatcher должен наблюдать за изменениями файла в течение всего времени работы приложения. Как правильно обращаться с этим сценарием?

public class FileWatcher : IFileWatcher
{
    private FileSystemWatcher watcher;

    public event EventHandler<EventArgs> SettingsChanged;

    public FileWatcher(bool start)
    {
        this.RegisterForChanges();
    }

    public void OnChanged(object source, EventArgs e)
    {
        if (this.SettingsChanged != null)
        {
            this.SettingsChanged(source, new EventArgs());
        }
    }

    private void RegisterForChanges()
    {
        /// more code here etc
        ...
        this.watcher = new FileSystemWatcher
                           {
                               Path = directory, 
                               NotifyFilter =
                                   NotifyFilters.LastAccess | NotifyFilters.LastWrite
                                   | NotifyFilters.FileName | NotifyFilters.DirectoryName, 
                               Filter = fileName
                           };

        // Add event handlers.
        this.watcher.Changed += this.OnChanged;

        // Begin watching.
        this.watcher.EnableRaisingEvents = true;
    }

Ответы на вопрос(2)

Ваш ответ на вопрос