title: Resolving a list of components as a constructor argument
body: <p>Say I have an interface to define formatting reports:</p>
  
  <pre><code>public interface IFormatter 
  {
      string Name {get;}
      Report Format(InputData data);
  }
  </code></pre>
  
  <p>and an implementation of a provider that will format reports for me:</p>
  
  <pre><code>public FormatterProvider : IFormatterProvider
  {
      private readonly IList&lt;IFormatter&gt; _formatter;
  
  public FormatterProvider(IList&lt;IFormatter&gt; formatters)
  {
      _formatters = formatters;
  }
  
      public IFormatter GetFormatter(string name){ return _formatters.Where(x =&gt; x.Name == name); }
  }
  </code></pre>
  
  <p>I know I can register all of the formatters in an assembly using this registration:</p>
  
  <pre><code>container.Register(
      AllTypes.FromAssemblyName("MyCompany.Formatters")
          .BasedOn&lt;IFormatter&gt;()
          .WithService
          .FromInterface()
      );
  </code></pre>
  
  <p>But, how to I register the provider so that any formatters registered in the container are passed to it's constructor?</p>