title: Using default parameter values with Ninject 3.0
body: <p>I have a class with a constructor having a parameter with a default value. With Ninject 2.2, it would honor the <code>[Optional]</code> attribute and work fine <em>with no binding defined</em> against a constructor declared like so:</p>
  
  <pre><code>public EmployeeValidator([Optional] IValidator&lt;PersonName&gt; personNameValidator = null)
  </code></pre>
  
  <p>Since upgrading to Ninject 3.0, construction of this object fails with a message stating that the provider returned null:</p>
  
  <blockquote>
    <p>Test method ValidatorIsolated.Tests.EmployeeValidatorTest.CreateEmployeeValidatorTest threw exception:</p>
    
    <p>Ninject.ActivationException: Error activating IValidator{PersonName} using conditional implicit self-binding of IValidator{PersonName}</p>
    
    <p>Provider returned null.</p>
    
    <p>Activation path:</p>
    
    <p>2) Injection of dependency IValidator{PersonName} into parameter personNameValidator of constructor of type EmployeeValidator</p>
    
    <p>1) Request for IValidator{Employee}</p>
    
    <p>Suggestions:</p>
    
    <p>1) Ensure that the provider handles creation requests properly.</p>
  </blockquote>
  
  <p>Is the <code>[Optional]</code> attribute still honored when a default value for a parameter is present and what is the best way to handle injection with optional parameters such as this?</p>