When you ask Unity to resolve a type with multiple constructors, by default it picks the constructor with the most parameters, to facilitate maximum dependency injection.

Richard Blewett has a good post on specifying a different constuctor in config, but it doesn’t cover the scenario when the constructor you want is the default, parameterless constructor.

The documentation is a bit lacking, although the config is logical -here’s how it looks:

<unity>
<containers>
<container>
<types>
<typetype=x.y.z.Spec.IInterface,x.y.z
mapTo=x.y.z.Impl.Implementation,x.y.z>
<constructor/> <!– force use of default constructor –>
</type>
</types>
</container>
</containers>
</unity>