Castle Windsor 或 Spring.NET - 优点和缺点 [关闭]

2024-04-18

昨天,我在这个网站上阅读了一些文章,同时偶然发现了一篇关于这两个新的 IoC 工具的文章。我应该先学哪一个?是否有关于何时应使用哪一种的规范?


Castle.Windsor 和 Spring.NET 都不是新事物。

  • 温莎城堡自 2004 年底以来一直存在
  • Spring.NET 自 2006 年初就已存在

他们是两个可比的DI 容器其本质上旨在提供相同的服务,因此您不需要先学习一项服务,也不需要查阅任何关于何时使用哪一项的规范。

我已经使用温莎城堡大约半年了,总体上对它很满意。 Spring.NET 我还没看过,但看起来是这样与配置系统密切相关 https://stackoverflow.com/questions/1955862/how-to-change-configs-in-spring-net并且不支持程序化注册,如果这是真的,那在我看来这将是一个主要缺点。

Castle Windsor 和 Spring.NET 并不是唯一可用于 .NET 的 DI 容器。这是一个更大的列表:

  • 温莎城堡 http://castleproject.org/
  • Spring.NET http://www.springframework.net/
  • 结构图 http://structuremap.sourceforge.net/
  • Unity http://www.codeplex.com/unity
  • Ninject http://ninject.org/
  • autofac http://code.google.com/p/autofac/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Castle Windsor 或 Spring.NET - 优点和缺点 [关闭] 的相关文章

  • 春天有像温莎城堡里的@predestroy 这样的东西吗

    任何类似的东西 PreDestroy在弹簧框架中 如果您定义了一个实现 DisposableBean 接口的 bean 那么 Spring 将调用 void destroy throws Exception 销毁 Bean 之前的方法 这是
  • 使用温莎城堡解析 HttpControllerContext

    In the ASP NET Web API http www asp net web api HttpControllerContext实例提供了很多有关当前环境的信息 包括当前请求的URI 如果服务依赖于此类信息 例如请求 URI 则应
  • 使用 Ninject IOC 替换工厂

    我在解析器中有一个工厂方法 本质上 当我加载令牌时 我会查找该令牌的处理程序 或者直接转到默认处理程序 我已经将其实现为switch并作为Dictionary
  • Spring真的不支持接口注入吗?

    我知道 Spring 不支持接口注入 而且我已经读过很多次了 但今天 当我看到 Martin Fowler 写的一篇关于国际奥委会的文章时 link http martinfowler com articles injection html
  • 使用 Autofac 注入接口的特定实例

    我有一个控制器 它接收接口的特定实例 界面看起来像这样 public interface IMyInterface implementation goes here 然后我有一些类实现这个接口 如下所示 public class MyCla
  • 作为装饰器登录与依赖注入 - 如果我需要登录类内部怎么办?

    我最初问这个问题是在这条评论 https stackoverflow com questions 7905110 logging aspect oriented programming and dependency injection tr
  • 在 Web API 应用程序中,我可以在什么时候拦截 URI 参数并相应地路由调用?

    注 这个问题确实有点类似于this one https stackoverflow com questions 21388655 can i programmatically determine the database context t
  • 何时使用 IOC 容器?

    我试图了解何时应该使用容器而不是手动注入依赖项 如果我有一个使用 1 2 个接口的应用程序 并且每个接口只有 1 2 个具体实现 我会倾向于自己处理 如果我有一个使用 2 3 个接口的小型应用程序 并且每个接口有 2 3 个具体实现 我应该
  • 类型的构造函数:找不到“Namespace.type”

    我使用 Castle Windsor 作为 IOC 所以我试图在 HTTPHandler 的构造函数中解析服务类型 我不断收到此错误 类型的构造函数 找不到 Namespace type 我的配置具有以下服务类型条目 IDocumentDi
  • IoC 容器本身的单元测试

    我认为以前没有人问过这个问题 尽管搜索这样的术语确实很困难单元测试ioc容器并且没有找到有关如何实现 IoC 以便执行单元测试的问题 我想对 IoC 容器本身进行单元测试 基本上是因为有时我会遇到容器问题 就像应用程序的任何其他部分一样 并
  • 简单注入器从命名空间注册所有服务

    我的服务接口的命名空间为Services Interfaces 服务接口的实现有一个命名空间Web UI Services 例如 我有 2 个服务实现 IUserService 需要注册到UserService ICountryServic
  • 依赖注入陷阱

    有人在 www 上有一个链接列表来获取 DI 陷阱的好列表吗 我一直在尝试在 asp net webforms 应用程序中使用 DI 注入控件 发现在递归构建时 ViewState 会丢失 开发人员在应用程序中实施 IoC DI 之前需要注
  • 通过 IoC 容器实例化 WCF 服务

    是否可以使 WCF 运行时通过 IoC 容器而不是通过其通常的进程来实例化服务 此外 考虑到容器的类型生活方式配置与服务的 InstanceContextBehavior 之间存在潜在冲突 这种方法会是一个糟糕的主意吗 我知道我可能完全问错
  • 如何在 inversify 中注入异步依赖?

    我有 TypeScript 应用程序并且正在使用反转 http inversify io 对于国际奥委会 我有一个连接类 use strict import injectable from inversify import createCo
  • IoC 服务的抽象类还是接口?

    我目前正在使用 IoC 在项目中提供存储库的具体实现 我读过的所有示例都使用接口作为服务的定义 但是 在阅读了 Microsoft 的建议后 建议更喜欢抽象类而不是接口 http msdn microsoft com en us libra
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 温莎城堡:UsingFactoryMethod 无法实例化,出现奇怪的错误

    当我使用这个注册时 container Register Component For
  • 允许调用函数覆盖默认选项 - jQuery UI 对话框

    我希望 CallingFunction 能够覆盖中提供的默认选项showDivPopUp功能 function calling showDivPopUp title of pop up box message to show buttons
  • Castle Windsor依赖注入:使用调用者类型作为参数

    以下类在温莎城堡容器中注册 namespace MyNamespace class Foo IFoo public Foo ILog log log log ILog是一个log4net记录器 当前注册如下 Component For
  • 为什么Windsor只能拦截虚方法或接口方法?

    我正在阅读文档 发现如果不使用接口 那么 Windsor 只能拦截虚拟方法 这是 Windsor 的限制还是 C 语言的限制 我正在寻找深入的答案 C 语言在这里完全无关 问题是拦截在运行时级别如何工作 一种技术是从类继承 实现接口并将其用

随机推荐

  • svn 可以提供哪些报告?

    我们正在迁移到 SVN 对我们来说不幸的是 我们会定期接受审核 审核员需要以下信息 文件更改历史记录SVN访问历史添加了新文件文件的变化 是否有一个工具可以为我们生成这些报告 或其中一些报告 StatSVN是一个轻量级的颠覆报告生成器 ht
  • 如何使用jquery获取动态创建的没有Id的子元素的高度

    我有一个 div 它总是动态加载两个图像 并且可能在中间加载一个 div 图像或 div 都没有与之关联的 id 而且我不能让它们有 id 用萤火虫检查它们 它们只是显示为 img and div 我需要获取这个子 div 存在时的高度 我
  • 打印用户输入的两个最高值

    我有一个作业 我必须编写一段代码 让用户决定要写入的 int 值的数量 然后决定这些值应该是什么 用户必须至少有 2 个输入 然后程序将比较输入的值 然后打印出两个最高值 到目前为止 我设法打印出最高的值 但我不确定我的做法有什么问题 因为
  • Chrome 更新破坏了我的滚动子菜单

    在 Windows 和 Osx 中将 Chrome 更新到版本 56 它破坏了我的滚动子菜单 如果我用鼠标滚轮滚动 滚动操作就会起作用 但是如果我将鼠标指针悬停在滚动条上 子菜单就会关闭 我使用以下 css 来滚动子菜单 ul scroll
  • 如何将所有text_node节点值的一部分包装在html元素中?

    我正在迭代 html 文档中的所有文本节点 以便用特定的范围包围一些单词 改变nodeValue不允许我插入 html 这span被转义以纯文本显示 我不希望这样 这是我到目前为止所拥有的 var elements document get
  • 我无法在react-dom/client中使用createRoot函数

    import React from react import as ReactDOMClient from react dom client import App from App import reportWebVitals from r
  • 提取授权号的正则表达式模式

    我在用着GSKinner 的 Reg Exr 工具 http gskinner com RegExr 帮助提出一种模式 可以在包含大量其他垃圾的字段中找到授权号 授权号是一个包含字母 有时 数字 始终 和连字符 有时 的字符串 i e 授权
  • 访客模式的实际优势是什么?有哪些替代方案?

    我读了很多关于访客模式及其假定优势的内容 然而对我来说 在实践中应用它们似乎并没有那么大的优势 方便 和 优雅 似乎意味着大量的样板代码 因此 代码很难遵循 另外 接受 访问 的描述性并不强 如果您的编程语言没有方法重载 即 Vala 那么
  • 在sql server中如何获取用`
    `分开的列值

    在sql server中如何获取列的值 br 分开他们 这里我用逗号分隔 但是我怎样才能得到 br 在sql服务器中的html中 SELECT STUFF SELECT cast Citation Id as nvarchar 500 FR
  • 我的简单 ListView 应用程序正在泄漏内存。我做错了什么?

    首先 我确实先将其发布到 android google 群组 但它经过了审核 我不确定它需要多长时间才能出现在那里 所以希望这里有人可以提供帮助 我创建了一个简单的应用程序 其中 ListView 遵循 ListActivity 我在网上找
  • 有没有办法重新打开套接字?

    我在一些代码中创建了许多 短期 套接字 如下所示 nb 1000 for i in range nb sck socket socket socket AF INET socket SOCK STREAM sck connect adr p
  • 如何让VS忽略Test dll的代码覆盖率

    目前 当我运行代码覆盖率分析时 报告的覆盖率为 90 问题是 另外 10 是实际测试的代码 我怎样才能让VS忽略该测试代码而只考虑实际代码 您可以在项目中添加运行设置文件 在该文件中 您可以提及需要从代码覆盖率中排除的 DLL 名称
  • 多个水豚等待时间?

    我想要有不一样的Capybara我的代码中的等待时间取决于它们通常需要多长时间才能完全加载 我是否必须重复不断地改变Capybara default wait time或者 还有更好的方法 您可以使用使用等待时间 秒 http rubydo
  • 将recvfrom() 与原始套接字一起使用:一般疑问

    我创建了一个原始套接字 它从数据链路层获取所有 IPv4 数据包 删除了数据链路层标头 为了读取我使用的数据包recvfrom 我的疑问是 假设由于操作系统进行了一些调度 我的进程休眠了 1 秒 当它醒来时 它做到了recvfrom 要接收
  • 使用 SSLSocket 的 SOCKS5 代理

    我有一个客户端 服务器应用程序 它通过 Java 的 SSLSocket 远程连接到服务器 我正在尝试实现一种可选模式 通过经过身份验证的 SOCKS v5 代理启用连接 我尝试使用相关教程 http download oracle com
  • 设置目录和子项的权限

    我的程序将一些目录 子目录和文件从服务器复制到本地计算机 我需要 每个本地用户都可以修改它 编辑 删除 删除 重命名 但现在它只能做所有者 如何为复制的目录及其子项目设置必要的权限 我尝试这样的代码 String account Path
  • 关闭 UIScrollView 中的键盘

    好吧 我有几个UITextFields and UITextViews里面一个UIScrollView 我想将键盘设置为消失scrollview被触摸或滚动 当然 当您触摸文本字段 视图内时除外 我目前的尝试是替换UIScrollView与
  • 如何使用 PDO 从 MySQL 获取数字类型?

    我正在使用 PDO 和 MySQL 由于某种原因 当从数据库获取 int 类型的值时 PDOStatement 返回数字的字符串表示形式 而不是数字类型的值 我该如何防止这种情况发生 我注意到 PDO 类有一个属性 PDO ATTR STR
  • jSoup 从 类获取文本

    我有一部分 HTML 文件 格式如下 h6 class uiStreamMessage span class messageBody Welcome span h6 在该文件中 还有其他跨度类 但我只想获取所有 messageBody 范围
  • Castle Windsor 或 Spring.NET - 优点和缺点 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi