title: Component was registered but is also waiting for dependencies
body: <p>I have some Castle Windsor component registrations that look like the following.</p>
  
  <pre><code>container.Register(
      Component.For&lt;IService&gt;()
          .Named("proxy-service")
          .ImplementedBy&lt;ProxyService&gt;()
          .DependsOn(Dependency.OnComponent(
              typeof(IHttpClient), "backend-http-client")),
      Component.For&lt;IHttpClient&gt;()
          .Named("backend-http-client")
          .ImplementedBy&lt;DefaultHttpClient&gt;()
          .DependsOn(Dependency.OnAppSettingsValue(
              "baseAddress", "backendServerBaseAddress"))
  );
  </code></pre>
  
  <ul>
  <li><p><code>ProxyService</code> implements <code>IService</code> and has a constructor that takes a single <code>IHttpClient</code>.</p></li>
  <li><p><code>DefaultHttpClient</code> implements <code>IHttpClient</code> and has a constructor that takes a single <code>string</code> named <code>baseAddress</code>.</p></li>
  </ul>
  
  <p>Now if I try to test my registrations by calling <code>container.Resolve&lt;IService&gt;("proxy-service")</code> I get the following exception.</p>
  
  <blockquote>
    <p>Castle.MicroKernel.Handlers.HandlerException: Can't create component 'proxy-service' as it has dependencies to be satisfied.</p>
    
    <p>'proxy-service' is waiting for the following dependencies:<br>
    - Component 'backend-http-client' (via override) which was registered but is also waiting for dependencies.</p>
  </blockquote>
  
  <p>What's odd is that both of the following work.</p>
  
  <ol>
  <li><code>container.Resolve&lt;IHttpClient&gt;("backend-http-client")</code></li>
  <li>Switching the ordering of the <code>"proxy-service"</code> and <code>"backend-http-client"</code> registrations.</li>
  </ol>
  
  <p>I'm really stumped here because I've used Castle Windsor a lot and have never encountered a problem like this that wasn't obviously caused by a typo or mistake in the registrations.</p>
  
  <p>Why does (1) above work, but resolving the component that depends on solely it does not?</p>
  
  <p>Why does (2) make it work? The order of registrations shouldn't matter unless there are multiple registrations for the same interface (which there aren't in my minimal reduced case). I have code for other projects that do the same kind of thing with many different registrations.</p>
  
  <p>Is there something obviously wrong that I am missing?</p>