How to configure ninject to inject different dependency types into the same class?
<p>I've run into what I believe must be a common dependency injection-related problem.  I'm having trouble finding relevant examples, and I do not like the best solution I've been able to come up with.</p>

<pre><code>public class WasherDryerFolderSystem : ILaundrySystem
{
    private IWasher _washer;
    private IDryer _dryer;
    private IFolder _folder;

    public WasherDryerFolderSystem(IWasher washer, IDryer dryer, IFolder folder)
    {...}

    public void DoLaundry()
    {
        _washer.Wash();
        _dryer.Dry();
        _folder.Fold();
    }
}


public class HandWasher : IWasher {...}
public class MachineWasher : IWasher {...}

public class HandDryer : IDryer {...}
public class MachineDryer : IDryer {...}

public class HandFolder : IFolder {...}
public class MachineFolder : IFolder {...}
</code></pre>

<p>Now in the main app I have something like</p>

<pre><code>var laundrySystem = _kernel.Get&lt;ILaundrySystem&gt;(someUserInput);
</code></pre>

<p>What is a good way to configure the bindings required for something like this?  Here's what I've been able to come up with thus far (that I don't like):</p>

<pre><code>Bind&lt;ILaundrySystem&gt;().To&lt;WasherDryerFolderSystem&gt;()
    .Named(MACHINEWASH_HANDDRY_HANDFOLD)
    .WithConstructorArgument("washer", new MachineWasher())
    .WithConstructorArgument("dryer", new HandDryer())
    .WithConstructorArgument("folder", new HandFolder());
</code></pre>

<p>At first I didn't think this looked too bad, but when Washers and Dryers and Folders all have their own dependencies, this quickly gets ugly.</p>

<p>This feels to me like it should be a common problem, but I'm not finding anything that's much help.  Do I have something designed incorrectly?</p>