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

发布于 2024-08-05 01:06:55 字数 480 浏览 5 评论 0原文

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

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

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

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

I am wiring up my first SubSonic 3 application (in an ASP.NET MVC 1.0 front-end) and am looking at Rob's SimpleRepository. I'm using Castle.Windsor as an injection framework.

In my application startup, I configure Castle to bind a SubSonic SimpleRepository to a SubSonic IRepository. Nothing complicated there. However, the SimpleRepository has a ctor overload which takes two values: a connection string name and a set of SimpleRepositoryOptions. Not having dug too deep into Castle in the past, it's not clear if there is a way to specify the ctor arguments via configuration (or some other means).

Right now, I have a custom implementation of the SimpleRepository that explicitly creates a SimpleRepository with those arguments in it's parameterless ctor, but if I want to change these at any point in time, it requires changing the code and recompiling.

Is there a more elegant way to configure Castle to take constructor arguments?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰雪之触 2024-08-12 01:06:55

如果您使用 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

If you're configuring Windsor using an XML file, you define your ctor arguments and their values like this:

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

See the Windsor configuration reference for more info:

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

为你拒绝所有暧昧 2024-08-12 01:06:55

请参阅此 Wiki 页面。该页面上所谓的“参数”是构造函数参数(这是必需参数)或属性(可选参数)

See this wiki page. What's called "parameters" on that page is either a constructor parameter (which is a required parameter) or a property (optional parameter)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文