title: How to run method after ApiController construction but before action executes?
body: <p>I have an ASP.NET Web API service where I am trying to inject information about the request into a "logging context" which can be reused by objects that have no idea they are part of a web service. The goal is that every message logged is associated with a set of data points taken from the request that spawned it.</p>
  
  <p>The context itself is generated by a Message Handler very early on and then added to <code>Request.Properties</code>. The problem I'm having is that in the controller constructor the <code>Request</code> property on the controller hasn't been set yet, so I can't retrieve the context and use it to appropriately configure the logging.</p>
  
  <p>I think I could do it with a filter: In <code>OnActionExecuting</code> the filter could check if the controller implemented an interface defining "PreAction" and if so it could call that method, but I'm not sure if that's duplicating functionality provided by the framework.</p>
  
  <p><strong>Question:</strong> Is there a built-in way to run a method after the constructor has been run and the <code>Request</code> property has been populated but before the action method executes?</p>