title: How to perform async initalization of lazy injection
body: <p>Let's say we want to inject an object that is expensive to create (let's say it does initialization from a database), so we would typically use some kind of factory or <code>Lazy&lt;T&gt;</code>.  However, if we're injecting this object into an MVC or WebApi controller that is using async action methods, we don't want to block these methods on the expensive I/O operation when the Lazy object is initialized, which defeats the purpose of using async.</p>
  
  <p>Certainly, I could create an "initlize" method that is async, but that violates a number of principles.  </p>
  
  <p>What's the best option for accessing and initializing the injected object in a lazy and async way?</p>