Если вы звоните new MyClass()
, то StructureMap вообще не участвует. Никакая конфигурация StructureMap не изменит поведение.
Если вы вызовете ObjectFactory.GetInstance<MyClass>()
, StructureMap по умолчанию вызовет конструктор с большим количеством параметров.
Если вы хотите, чтобы StructureMap использовал другой конструктор, вы можете указать конструктор (через ответ PHeiberg):
x.SelectConstructor<IMyClass>(() => new MyClass(null));
Или вы можете просто явно указать StructureMap, как создать экземпляр, используя перегрузку Use()
, которая принимает Func<>
:
x.For<IMyClass>().Use(ctx => new MyClass(ctx.GetInstance<IMyService>()))