2009-09-15 67 views
4

我正在为我的第一个SubSonic 3应用程序(在ASP.NET MVC 1.0前端)进行布线,并且正在查看Rob的SimpleRepository。我使用Castle.Windsor作为注入框架。如何通过使用Castle.Windsor的依赖注入传递构造函数参数?

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

现在,我有一个SimpleRepository的自定义实现,它明确地创建了一个SimpleRepository,并在它的无参数ctor中使用这些参数,但是如果我想在任何时候更改这些参数,它需要更改代码并重新编译。

有没有一种更优雅的方式来配置城堡采取构造参数?

回答

4

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

+0

这种联系已经死了,我找不到它移到 - 似乎他们有一些网站错误马上。如果您包含一个工作示例或相关摘录,它会更有帮助。 – mskfisher 2011-11-02 16:00:35

+0

@mskfisher:这些年来事情发生了变化。更新的链接。 – 2011-11-02 16:12:59

+0

感谢您更新链接。你还可以添加一个例子,以防链路再次死亡吗? – mskfisher 2011-11-02 16:20:14

5

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

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

详情参见温莎配置参考:

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

+0

+1提供了一个例子。 – mskfisher 2011-11-02 16:01:08

+0

@mskfisher:XML注册已经过时了。 – 2011-11-02 16:11:12

相关问题