【问题标题】:How do I pass constructor arguments with dependency injection using Castle.Windsor?如何使用 Castle.Windsor 通过依赖注入传递构造函数参数?
【发布时间】:2010-11-28 14:43:34
【问题描述】:

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

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

现在,我有一个 SimpleRepository 的自定义实现,它显式地创建了一个 SimpleRepository,在它的无参数 ctor 中包含这些参数,但如果我想随时更改这些,则需要更改代码并重新编译。

有没有更优雅的方式来配置 Castle 以获取构造函数参数?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 该链接已失效,我找不到它移动到的位置 - 他们现在似乎有一些网站错误。如果您包含一个工作示例或相关摘录会更有帮助。
    • @mskfisher :多年来,事情发生了变化。更新链接。
    • 感谢您更新链接。如果将来链接再次失效,您能否添加一个示例?
    【解决方案2】:

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

    你的连接字符串 ... 参数> 组件>

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

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

    【讨论】:

    • @mskfisher:XML 注册已经过时了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多