title: How to enforce a method call (in the base class) when overriding method is invoked?
body: <p>I have this situation that when <strong>AbstractMethod</strong> method is invoked from <strong>ImplementClass</strong> I want to enforce that <strong>MustBeCalled</strong> method in the <strong>AbstractClass</strong> is invoked. I’ve never come across this situation before. Thank you!</p>
  
  <pre><code>public abstract class AbstractClass
  {
      public abstract void AbstractMethod();
  
      public void MustBeCalled()
      {
          //this must be called when AbstractMethod is invoked
      }
  }
  
  public class ImplementClass : AbstractClass
  {
      public override void AbstractMethod()
      {
          //when called, base.MustBeCalled() must be called.
          //how can i enforce this?
      }
  }
  </code></pre>