0

我正在迁移到 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

我猜我的注册有问题……但是什么?

4

1 回答 1

0

根据在 StructureMap 的 Gitter IM 频道中与 Jeremy Miller 的对话,这似乎是当前实现中的一个疏忽,并且很可能很快就会得到修复。

对于其他需要它的人,可以在https://github.com/structuremap/structuremap/issues/438找到错误报告

于 2016-01-29T20:52:42.553 回答