В одном из моих классов у меня есть внутренний конструктор, который используется для модульного тестирования, и приватный конструктор, который вызывает мое приложение. Внутренний имеет параметры для моих зависимостей, в то время как закрытый конструктор не имеет параметров и вызывает BuildUp
, чтобы использовать инъекцию сеттера. Как-то код вылетает на меня со следующей ошибкой:
StructureMap Exception Code: 245
Error while trying to create an InstanceBuilder for My.Namespace.And.Class, My.Assembly, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null
at StructureMap.Graph.PluginCache.<.cctor>b__1(Type t) in c:\code\structuremap\Source\StructureMap\Graph\PluginCache.cs:line 40
at StructureMap.Util.Cache`2.get_Item(KEY key) in c:\code\structuremap\Source\StructureMap\Util\Cache.cs:line 82
at StructureMap.Graph.PluginCache.FindBuilder(Type pluggedType) in c:\code\structuremap\Source\StructureMap\Graph\PluginCache.cs:line 52
at StructureMap.Container.BuildUp(Object target) in c:\code\structuremap\Source\StructureMap\Container.cs:line 243
at StructureMap.ObjectFactory.BuildUp(Object target) in c:\code\structuremap\Source\StructureMap\ObjectFactory.cs:line 297
Object reference not set to an instance of an object.
at StructureMap.Construction.ConstructorFunctionBuilder`1.CreateBuilder(Plugin plugin) in c:\code\structuremap\Source\StructureMap\Construction\ConstructorFunctionBuilder.cs:line 25
at StructureMap.Construction.BuilderCompiler.FuncCompiler`1.CreateBuilder(Plugin plugin) in c:\code\structuremap\Source\StructureMap\Construction\BuilderCompiler.cs:line 51
at StructureMap.Construction.BuilderCompiler.CreateBuilder(Plugin plugin) in c:\code\structuremap\Source\StructureMap\Construction\BuilderCompiler.cs:line 12
at StructureMap.Graph.PluginCache.<.cctor>b__1(Type t) in c:\code\structuremap\Source\StructureMap\Graph\PluginCache.cs:line 36
Если я изменю конструктор по умолчанию, чтобы он был общедоступным, а не закрытым или даже внутренним, тогда все будет работать, как и ожидалось. Это предполагаемое поведение с частными и внутренними конструкторами или это ошибка?