我有一个使用Spring.net的.net application
。
另外还有一个interface
的实现。应该使用哪一个 - 它基于configuration file
。
Spring的bootstrap
<objects>
<object id="Impl1" name="Impl1" type="namespace.Impl1, IInterface" >
</object>
<object id="Impl2" name="Impl2" type="namespace.Impl2, IInterface" >
</object>
</objects>
失败
var appContext = ContextRegistry.GetContext();
错误消息是:
未处理的类型异常 &#39; System.Configuration.ConfigurationErrorsException&#39;发生在 Spring.Core.dll
附加信息:通过表达的不满意依赖性 索引为2的构造函数参数[namespace.IInterface]:否 定义[namespace.IInterface]类型的唯一对象:expected 单个匹配对象但找到2: System.Collections.Specialized.OrderedDictionary
答案 0 :(得分:0)
我找到了另一种配置,其中autowire设置被设置为自动检测。
<object id="workspaceExportService" type="namespace.Imp3, Namespace"
autowire="autodetect" />
此类Imp3
具有带IInterface
参数的构造函数。因此,它试图解决IInterface
的实现,但找到其中两个。
作为解决方案,您可以将lazy-init="true"
属性添加到对象节点。