title: How to get invocation list of an explicit event in C#
body: <p>I can define an event with the following: </p>
  
  <pre><code>public event msg_callback event_PingMessage; 
  </code></pre>
  
  <p>and get the invocation list of an event with the following: </p>
  
  <pre><code>MulticastDelegate event_delegate = (MulticastDelegate)this.GetType().GetField(event_name,
                                  BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField).GetValue(this);
  
  foreach (var handler in event_delegate.GetInvocationList())
  {
      // use handler() here 
  }
  </code></pre>
  
  <p>But, if I define my <code>event_PingMessage</code> as an explicit event, like: </p>
  
  <pre><code>    private msg_callback explicitEvent;
      public event msg_callback event_PingMessage
      {
          add
          {
              explicitEvent += value;
              int i = 0; 
  
          }
          remove
          {
              explicitEvent -= value;
          }
      }
  </code></pre>
  
  <p>the <code>MulticastDelegate event_delegate = ...</code> line throws an exception: </p>
  
  <pre><code>Object reference not set to an instance of an object.
  </code></pre>
  
  <p>How can I <code>.GetInvocationList()</code> for my explicit events?</p>