title: Inject Both Interface and Implementation in AutoFixture
body: <p>Consider the following classes:</p>
  
  <pre><code>public interface IInterface {}
  public class Class : IInterface {}
  
  public class Customization : ICustomization
  {
      readonly IInterface item;
  
      public Customization() : this( new Class() ) {}
  
      public Customization( IInterface item )
      {
          this.item = item;
      }
  
      public void Customize( IFixture fixture )
      {
          fixture.Inject( item );
          var created = fixture.Create&lt;Class&gt;(); // Would like this to resolve as item from previous line.
      }
  }
  </code></pre>
  
  <p>The problem I am running into is that the <code>IInterface</code> is injected, whereas the <code>Class</code> is not.  Is there a way to inject both <code>IInterface</code> and <code>Class</code> so that the same instance is returned for both?  </p>
  
  <p>Please note that I would like to do this using an <code>ICustomization</code> (or within an <code>ICustomization</code>) and not with the attributes on a test-method.  I am looking to do customized inject on these two classes.  If I use <code>[Frozen( Matching.ImplementedInterfaces)]Class item</code> as a parameter, it doesn't work, as the Class that is Frozen overwrites the injected value in the <code>ICustomization.Customize</code> method.</p>
  
  <p>Please additionally note that this is sample code and not how I am using it.  In the xUnit Test Method, I would like the <code>Class</code> instance that is specified as a parameter to be the frozen <code>IInstance</code> above:</p>
  
  <pre><code>public void MyTest( IInterface @interface, Class implementation )
  {
      Assert.Same( @interface, implementation );
  }
  </code></pre>