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 - 优点和缺点 [关闭] 的相关文章

  • servicestack with funq - 按照惯例自动装配

    我有一个在其构造函数中采用 IMyDependency 的服务 IMyDependency MyDependency 和服务都位于同一个程序集中 MyDependency 有一个单一的 公共的 无参数的构造函数 令我惊讶的是 这不起作用 c
  • Grails 依赖注入在服务之外?

    我有一个 Grails 应用程序 需要运行一个可能会随着时间的推移而被替换的策略 我知道 Spring 是 Grails 的基础 所以我想知道我是否可以访问 Spring 的 IoC 容器 以便我可以在 xml 文件中外部化实际依赖项 注意
  • 为温莎城堡中的所有接口实现注册拦截器

    我对温莎城堡相当陌生 特别是使用拦截器 我想知道是否可以在特定接口的所有实现中注册拦截器 而无需依次指定每个实现 例如 我有一个名为IComponent这将由许多班级实施 我有一个ComponentInterceptor编写的类在这些类执行
  • 如何在与 Castle Windsor DI 容器相同的上下文中重用瞬态依赖项

    如果我有以下设置 当在同一上下文中创建对象时 如何将容器配置为使用相同的数据库 public class Database public interface IRepository Database Database get public
  • 春天有像温莎城堡里的@predestroy 这样的东西吗

    任何类似的东西 PreDestroy在弹簧框架中 如果您定义了一个实现 DisposableBean 接口的 bean 那么 Spring 将调用 void destroy throws Exception 销毁 Bean 之前的方法 这是
  • Spring真的不支持接口注入吗?

    我知道 Spring 不支持接口注入 而且我已经读过很多次了 但今天 当我看到 Martin Fowler 写的一篇关于国际奥委会的文章时 link http martinfowler com articles injection html
  • 在 ASP.NET MVC 的 Windsor 配置中,控制器的生活方式是否应该始终是瞬态的?

    我遇到了一个问题 我认为 Html DropDownList 会在我第一次提交表单时回发所选值 但每个后续回发只会发布初始回发中的数据 因此 我将生活方式 瞬态 添加到为温莎城堡配置控制器的组件元素中 这解决了问题 但当然使回发需要更长的时
  • 使用 Castle Windsor 解析具有泛型类型约束的接口

    给定 FooRequest 和 FooResponse 是抽象的接口 public interface IFooHandler
  • 结构图 - 同一接口的两个实现

    我有一个具有以下 ctor 的服务类 public class IMessageService emailService IMessageService smsService 和两个实现IMessageService 电子邮件和短信 如何配
  • castle IOC - 解决循环引用

    关于我的 MVP 实现的简单问题 目前我有下面的代码 其中演示者和视图都是通过容器解析的 然后演示者调用 View Init 将自己传递给视图 然而 我想知道是否有一种方法可以让容器修复我的循环引用 视图 gt 演示者 演示者 gt 视图
  • Guice:如何基于(动态 Web 属性)更改运行时注入

    以下是我面临的问题的近似值 认为我们有一个带有一些规则的密码验证器 public interface RuleChecker Checks for a password strenght returns 10 for strong or 0
  • 拦截MEF中的依赖关系

    是否可以在 MEF 处理依赖项请求之前拦截 MEF 中的依赖项请求 这对于实现装饰器和高级生命周期管理非常有用 就像是 catalogue AddInterceptor
  • Action Filter 中的 UnitOfWork 似乎正在缓存

    我有一个使用 IoC Unity 的 MVC 3 站点 我的模型是使用 EF4 和 POCO 生成的 我正在使用操作过滤器来提交我的工作单元 public class UseUnitOfWorkAttribute ActionFilterA
  • 依赖注入陷阱

    有人在 www 上有一个链接列表来获取 DI 陷阱的好列表吗 我一直在尝试在 asp net webforms 应用程序中使用 DI 注入控件 发现在递归构建时 ViewState 会丢失 开发人员在应用程序中实施 IoC DI 之前需要注
  • ASP.NET MVC 5 中的 Actionfilter 注入

    我有一个简单的过滤器 public class IsAdmin ActionFilterAttribute IAuthenticationFilter private string roleName IBusinessIdentity id
  • 什么时候使用 IoC 合适?

    我了解 IoC 容器是什么 并且一直在阅读结构图 这项技术似乎很容易使用 我的问题是 使用 IoC 容器的适当粒度级别是多少 我认为 IoC 的应用可能有以下级别 打破所有对象之间的所有依赖关系 当然有点过分了 打破所有主要对象 例如域对象
  • Unity IoC 和 MVC 3 Beta - 将 IRepository 传递给控制器​​构造函数

    MVC 3 中有什么变化吗 我已经尝试了互联网上所有将 Unity 设置为我的 IoC 容器的示例 但我不断收到错误消息 指出 Unity 无法解析我的 UserController 这是我的 UserController 上的构造函数 p
  • Castle Windsor - 如何根据构造函数参数解析组件

    假设我有一个这样的组件 public class MyComponent public MyComponent string name 我基本上希望在解析它时将提供的构造函数参数作为组件标识符的一部分 如果您从未使用该组参数解决它 它将实例
  • 如何在 inversify 中注入异步依赖?

    我有 TypeScript 应用程序并且正在使用反转 http inversify io 对于国际奥委会 我有一个连接类 use strict import injectable from inversify import createCo
  • 使用并非为 IOC 设计的遗留应用程序避免服务定位器反模式

    我经常读到IOC 中的服务定位器是一种反模式 http blog ploeh dk 2010 02 03 ServiceLocatorIsAnAntiPattern aspx 去年 我们在工作中的应用程序中引入了 IOC 具体来说是 Nin

随机推荐

  • 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