我是Castle Windsor的新手,对配置文件中的顺序感到困惑。这取自GettingStarted1示例。 HttpServiceWatcher类在其构造函数中使用IFailureNotifier实现者。但是,无论我如何订购实现此接口的两个组件 - AlarmFailureNotifier和EmailFailureNotifier - 我总是得到EmailFailureNotifier。我知道你可以覆盖使用参数和“服务查找”引用选择的内容,但我认为当其他机制不是时,会使用声明的顺序。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="castle"
type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler,Castle.Windsor" />
</configSections>
<castle>
<components>
<component
id="httpservicewatcher"
type="GettingStartedPart1.HttpServiceWatcher, GettingStartedPart1">
</component>
<component
id="alarm.notifier"
service="GettingStartedPart1.IFailureNotifier, GettingStartedPart1"
type="GettingStartedPart1.AlarmFailureNotifier, GettingStartedPart1" />
<component
id="email.notifier"
service="GettingStartedPart1.IFailureNotifier, GettingStartedPart1"
type="GettingStartedPart1.EmailFailureNotifier, GettingStartedPart1" />
<component
id="form.component"
type="GettingStartedPart1.Form1,GettingStartedPart1" />
</components>
</castle>
</configuration>
答案 0 :(得分:1)
这是通过Castle 2.0解决的(去年年初推出了RTM)。
最新版本的Castle是2.1.1:
Castle的发布总是有点棘手(他们需要更新他们的网站)。我总是参考项目清单:
http://www.castleproject.org/castle/projects.html
你想:MicroKernal / Windsor
答案 1 :(得分:0)
我不知道您使用的是哪个版本,但我相信这是一段时间前的错误,并且已在构建服务器版本中得到纠正。尝试一下,看看会发生什么。
此外,您可以使用以下默认组件:Castle Windsor and default components