我正在迁移到 StructureMap 4(特别是版本 4.0.1.318)。
我有看起来像适当的对象注册的东西:
For<ISomeInterface>().Use(() => GetConcreteInstance());
For<ISomeInterface>().MissingNamedInstanceIs.TheDefault();
For<ISomeOtherThing>().Add<OtherConcreteClass>()
.Ctor<ISomeInterface>().IsNamedInstance("Special");
但是,如果没有配置 ISomeInterface 的“特殊”实例(如果需要,通常会在另一个注册表中发生),那么不要回退到默认实例(这是我所期望的)这样的调用
[Container].GetAllInstances<ISomeOtherThing>();
结果如下:System.NotSupportedException: Instance's of type 'StructureMap.Pipeline.DefaultInstance' does not support ToNamedClose() and cannot be used as a MissingInstance
我猜我的注册有问题……但是什么?