title: ActionDescriptor from ControllerContext
body: <p>Given I have access only to <code>ControllerContext</code> and not <code>Action____Contexts</code> what is the optimal way to get the current executing ActionDescriptor?</p>
  
  <p>So far the only method I've found is:</p>
  
  <pre><code>new ReflectedControllerDescriptor(context.Controller.GetType())
      .FindAction(context, context.RouteData.GetRequiredString("action"));
  </code></pre>
  
  <p>Is this the optimal method? </p>
  
  <p>The fact that class is named <code>ReflectedControllerDescriptor</code> leads me to wonder if there is a heavy cost to this operation as it will be executed on every page request? Related to that is does this class internally cache or should I actually be caching <code>ReflectedControllerDescriptors</code> explicitly?</p>