title: Abstract the composition root in a reusable library
body: <p>In my first question</p>
  
  <p><a href="https://stackoverflow.com/questions/14681779/locate-the-correct-composition-root-for-a-net-library">Locate the correct composition root for a .NET library</a></p>
  
  <p>helped clarifying about Dependency Injection. The exhaustive answer of Steven states (<em>in few words if it possible</em>) that a reusable library is a particular a case and here we can use <code>poor-man-injection</code> (see the answer for completeness).</p>
  
  <p>Studying the source code of <a href="https://github.com/AutoFixture" rel="nofollow noreferrer">AutoFixture</a>, you can note that the main assembly use DI everywhere without depending on a container; something well explained in <a href="http://blog.ploeh.dk/" rel="nofollow noreferrer">Mark Seemann</a> book.</p>
  
  <p>The question is: <strong>can someone introduce a pattern (or good practice) to to abstract the composition root without using a container?</strong></p>
  
  <p><strong>Further notes (optional):</strong></p>
  
  <p>Backing to AutoFixture where the composition root occurs in <code>Fixture</code> type constructors; I think that <code>*Relays</code> class are used to group instances in a similar manner some DI library has the concept of module.
  It's interesting note that there's a type named <code>BehaviourRoot</code> that sits on the top of the graph (is this the kind of abstraction I'm searching?).</p>