title: Ninject scoping - use same instance across entire graph being constructed
body: <p>Let's say I have the following classes that I want to construct using Ninject, with the arrows showing dependencies.</p>
  
  <pre><code>A &gt; B &gt; D
  A &gt; C &gt; D
  </code></pre>
  
  <p>I want to configure Ninject such that A is transient scoped, i.e. every time you ask Ninject for an A, you get a new one.  I also want B and C to be transient, you get a new one of those every time you ask for an A.  But I want the <em>D</em> to be reused across both B and C.  So every time I request an A, I want Ninject to construct one of each object, not two Ds.  But I don't want Ds to be reused across different As.</p>
  
  <p>What is the best way to set this up using Ninject?</p>
  
  <p><strong>Update:</strong><br>
  After some more research, it seems like Unity has a PerResolveLifetimeManager which does what I'm looking for.  Is there a Ninject equivalent?</p>