如何使用Castle.Windsor传递带依赖注入的构造函数参数?

时间:2009-09-15 21:03:12

标签: asp.net-mvc subsonic subsonic3 castle-windsor

我正在连接我的第一个SubSonic 3应用程序(在ASP.NET MVC 1.0前端)并且正在查看Rob的SimpleRepository。我正在使用Castle.Windsor作为注入框架。

在我的应用程序启动中,我将Castle配置为将SubSonic SimpleRepository绑定到SubSonic IRepository。没有什么复杂的。但是,SimpleRepository有一个ctor重载,它带有两个值:连接字符串名称和一组SimpleRepositoryOptions。过去没有深入挖掘Castle,目前尚不清楚是否有办法通过配置(或其他方法)指定ctor参数。

现在,我有一个SimpleRepository的自定义实现,它在其无参数ctor中显式创建了一个带有这些参数的SimpleRepository,但是如果我想在任何时间点更改它们,则需要更改代码并重新编译。

是否有更优雅的方法来配置Castle以获取构造函数参数?

2 个答案:

答案 0 :(得分:5)

如果您使用XML文件配置Windsor,则可以像下面这样定义ctor参数及其值:

<component id="repository" service="IRepository" type="SimpleRepository" ...>
    <parameters>
        <connectionString>your connection string</connectionString>
        ...
    </parameters>
</component>

有关详细信息,请参阅Windsor配置参考:

http://www.castleproject.org/container/documentation/v1rc3/manual/windsorconfigref.html

答案 1 :(得分:4)

this wiki page。该页面上所谓的“参数”是构造函数参数(必需参数)或属性(可选参数)

相关问题