如何访问 Castle Windsor 的 Fluent Interfaces API?

Posted

技术标签:

【中文标题】如何访问 Castle Windsor 的 Fluent Interfaces API?【英文标题】:How do I get access to Castle Windsor's Fluent Interfaces API? 【发布时间】:2010-09-12 05:29:04 【问题描述】:

在让 Castle Windsor 的非 xml 配置正常工作时,我遇到了很多问题。与此同时,我看到越来越多的人通过 Windsor Container 流畅的界面提供建议。我在 Google 上搜索了最后一天,但在任何地方都找不到这个 API。

我说的是关键的 .Register() 方法,它似乎是 IWindsorContainer 对象的扩展方法。似乎它可能在 Castle.MicroKernel.Registration 命名空间中,但我在任何地方都找不到相应的库!

另外,有没有什么地方可以找到这些东西的文档?


编辑: 我发现sample project here 中的 Castle.MicroKernel 的副本比我使用的命名空间多(即使这个比我使用的要大八天,v1.0.0 而我的是 v1.0.3...),仍然有问题找到 .Register() 方法或任何示例。

编辑: 我找到了一些fluent interface samples at Bitter Coder,但没有可下载的示例,所以我仍然不知所措。

再次编辑:终于明白了。温莎城堡的最新源代码在here,获取最新成功构建,zip文件里面是一个bin目录。流畅的接口位于 Castle.Microkernel 内部(您可能还需要引用 Castle.Dynaproxy、Castle.Dynaproxy2 和 Castle.Windsor)。

PS 这篇文章是“城堡流利界面文档”的第一名谷歌搜索结果,可悲的是,你需要继续努力。 蟋蟀唧唧喳喳那是什么?美好的。让我弄清楚,然后我会继续。

【问题讨论】:

【参考方案1】:

Fluent 接口是不久前引入的 - 但仅在 Trunk 上可用(RC3 之后)要么获取城堡源(来自项目 subversion 存储库)并从 here 自己构建 IoC 项目,要么更容易获取latest successful build 在持续集成服务器上并使用它。

Castle.MicroKernel.Registration 是您需要在 MicroKernel 程序集中使用的名称空间 - 一旦您拥有相当新的 Castle 版本,您应该能够找到 Register(.. .) IKernel 和 IWindsorContainer 接口上的方法,允许应用“注册组件”(任何实现 IRegistration 的东西),其中包括 Castle 中各种流畅的组件注册功能,以及您可能开发的任何自定义功能。

询问有关 Castle 问题的最佳地点是 google castle-project-users 和 castle-project-devel 群组 - 请特别留意 Craig Neuwirt,因为他是开发 Castle Windsor 流畅界面功能的核心开发人员,因此也是最适合回答有关各种流畅界面功能的问题,因为它们尚未被广泛记录。

【讨论】:

天哪,我必须先下载并学习如何使用 NAnt?你们 Alt.Net 的人怎么了?在过去的 3 个月里,我一直在加快使用您的工具的速度,但我离“掌握”还差得很远 构建服务器已编译二进制文件,无需学习 Nant 或如何构建项目本身 - 只需从那里下载最新的二进制文件。【参考方案2】:

好的,仅供参考。 API 的官方完整文档位于 Castle Windsor Documentation Wiki

【讨论】:

以上是关于如何访问 Castle Windsor 的 Fluent Interfaces API?的主要内容,如果未能解决你的问题,请参考以下文章

Castle.Windsor依赖注入的高级应用_Castle.Windsor.3.1.0

Castle.Windsor依赖注入的高级应用

依赖注入 Castle.Windsor高级应用

Castle Windsor 3 + Fluent NHibernate + Castle.NHibernate.Integration

castle windsor学习----- CastleComponentAttribute 特性注册

castle windsor学习-----Inline dependencies 依赖