I have a class with 2 constructors.
MyClass()
and
MyClass(IMyService service)
How do I tell StructureMap then whenever I do a \'new MyClass()
If you call new MyClass()
, then StructureMap is not involved at all. No amount of StructureMap configuration will change the behavior.
If you call ObjectFactory.GetInstance
, StructureMap will by default call the constructor with more parameters.
If you want StructureMap to use a different constructor, you can specify the constructor (via PHeiberg's answer):
x.SelectConstructor(() => new MyClass(null));
Or you can just tell StructureMap explicitly how to create the instance using the overload of Use()
that accepts a Func<>
:
x.For().Use(ctx => new MyClass(ctx.GetInstance()))