title: Reflection to Identify Extension Methods
body: <p>In C# is there a technique using reflection to determine if a method has been added to a class as an extension method?</p>
  
  <p>Given an extension method such as the one shown below is it possible to determine that Reverse() has been added to the string class?</p>
  
  <pre><code>public static class StringExtensions
  {
      public static string Reverse(this string value)
      {
          char[] cArray = value.ToCharArray();
          Array.Reverse(cArray);
          return new string(cArray);
      }
  }
  </code></pre>
  
  <p>We're looking for a mechanism to determine in unit testing that the extension method was appropriately added by the developer.  One reason to attempt this is that it is possible that a similar method would be added to the actual class by the developer and, if it was, the compiler will pick that method up.</p>