.net Castle Windsor如何在xml中为构造函数参数指定组件属性?

时间:2011-09-02 08:43:27

标签: c# castle-windsor

我无法弄清楚如何将compoment属性传递给构造函数参数。

<component id="NotificationCenterManager"
                     service="Advise.Notification.INotificationCenterManager, Xsquare"
                     type="Advise.Notification.NotificationCenterManager, Xsquare">        
</component>    
<component id="JobProcessorConfigurationSender"
                 service="Advise.Core.JobProcessor.IJobProcessorConfigurationSender, Advise.Core"
                 type="Advise.JobProcessorManagement.JobProcessorConfigurationSender, Xsquare">
      <parameters>
            <notificationCenterUri>${NotificationCenterManager.NotificationCenterUri}
</notificationCenterUri>
      </parameters>
</component>

其中NotificationCenterUri是接口INotificationCenterManager的属性。 目前$ {NotificationCenterManager.NotificationCenterUri}被视为文字......

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

温莎不提供开箱即用的功能。你必须写一个facility来实现它。但是,我不推荐它:通过这样做,你隐含地使JobProcessorConfigurationSender依赖于NotificationCenterManager(隐式,因为它不在JobProcessorConfigurationSender的源代码中的任何地方)。

相反,请考虑将此URI作为property,然后在NotificationCenterManager和JobProcessorConfigurationSender的组件配置中引用它。