title: How to override an event handler that is not marked as virtual?
body: <p>I have to create a class that inherit from <code>FileSystemWatcher</code>. I should Intercept the event <code>OnCreated</code> and create my own event <code>OnCreated</code>. I have tried as follow:</p>
  
  <pre><code>public class LocalFolderWatcher : FileSystemWatcher, IWatcher
  {
      ...
      public event LocalFolderEventHandler Created;
  
      protected override void OnCreated(FileSystemEventArgs e)
      {
          string path = System.IO.Path.GetDirectoryName(e.FullPath);
          LocalFolderEventArgs args = new LocalFolderEventArgs(e.ChangeType, this._gatewayConfigurationName, path, this._folderConfigurationName, e.Name);
  
          if (Created != null &amp;&amp; base.EnableRaisingEvents &amp;&amp; base.Path != null)
              Created(this, args);
  
          base.OnCreated(e);
      }
  }
  </code></pre>
  
  <p>But I obtain an error: I cannot override a method that is not marked as virtual, abstract or override. I've tried to replace "override" with "new" but in this way the event is never raised..</p>
  
  <p>How can I intercept the real "OnCreated" and replace with mine?</p>
  
  <p>Thank you</p>