title: How to inject dependencies into view models in Caliburn.Micro?
body: <p>I really hope this is not a stupid question, but I'm somehow unable to recognize a straight-forward way to inject dependencies into view models using Caliburn.Micro.</p>
  
  <p>I'm having a main shell (conductor) like so:</p>
  
  <pre><code>public class ShellViewModel : Conductor&lt;IScreen&gt;.Collection.OneActive, IShell
  {
      public ShellViewModel(IEventAggregator eventAggregator) {
          ActivateItem(new DashboardViewModel());
      }
  }
  </code></pre>
  
  <p>Now I'd like to inject a service into the <code>DashboardViewModel</code> but since the <code>ActivateItem</code> method requires me to pass an instance (rather than e.g. a type), I'm forced to provide the service myself. And since the <code>ShellViewModel</code> isn't aware of an underlying IoC container, I have to have the service injected into the shell.. to me, it looks like Caliburn is trying to enforce a complete graph of all view models and dependencies within an application.</p>
  
  <p>I am aware that I could use a static accessor for my inversion of control container, but I really don't like this approach because I'd like to have a single composition root for my application (the bootstrapper) without having the other parts knowing about dependency injection and such.</p>