代码之家  ›  专栏  ›  技术社区  ›  nkirkes

如何使用castle.windsor传递带有依赖项注入的构造函数参数?

  •  4
  • nkirkes  · 技术社区  · 15 年前

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

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

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

    有没有更优雅的方法来配置Castle以采用构造函数参数?

    2 回复  |  直到 9 年前
        1
  •  4
  •   Simon Hughes    9 年前

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

        2
  •  5
  •   Ty.    15 年前

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

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

    有关更多信息,请参阅温莎配置参考:

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