There's been a recurring problem in StructureMap with defensive
programming check being too tight in some scenarios where SM is
deciding whether or not a Foo can go into a Bar. Specifically, this
is fixed:
For(typeof(IFoo)).Use(c => Foo.Build())
or
var boo = "a boo I got from something else"
For<IBoo>().Use(boo)
and you got an exception saying that Boo couldn't be plugged into IBoo
because it didn't have a public constructor. I relaxed the defensive
programming to stop the constructor check.