title: Which DI container will satisfy this
body: <p>This is what I want from DI container:</p>
  
  <pre><code>public class Class
  {
     public Class(IDependency dependency, string data)  { }
  }
  
  var obj = di.Resolve&lt;Class&gt;(() =&gt; new Class(null, "test"));
  </code></pre>
  
  <p>Points of interest:</p>
  
  <ol>
  <li>Can resolve both dependency and data in constructor.</li>
  <li>Can use type-safe syntax to pass constructor parameters (exact syntax may vary). Yes I can do it myself by getting constructor arguments from (Expression.Body as NewExpression) - but I'll need a way to detect what arguments are registered in the container.</li>
  </ol>
  
  <p>Another major requirements is that I'd like my components to be automatically picked up, i.e. I don't want to register Class - I want IoC to pick it up because it knows how to resolve IDependency.</p>
  
  <p>Also, Property Injection can be useful sometimes, but this is optional.</p>
  
  <p>The question is really about the combination of features - to have all of them - type-safe, parameters, automatic pick-up... It's easy to check one feature, but a combination of them is not easy to verify unless one's familiar with particular container and knows its features. Thus the question.</p>