Castle Windsor是最好的,可用于.NET的成熟的Inversion of Control
容器。
从NuGet获取官方版本:PM> Install-Package Castle.Windsor
或者在构建之前获得预发布软件包
显示我的代码
Windsor的使用非常简单。下面的代码不只是hello world - 这是多少大现实生活应用程序使用Windsor。有关API,功能,模式和实践的更多详细信息,请参阅完整文档。
//应用程序启动...
var container = new WindsorContainer();
//使用WindsorInstallers从执行程序集添加和配置所有组件
container.Install(FromAssembly.This());
//实例化和配置根组件及其所有依赖关系及其依赖关系的依赖关系...
var king = container.Resolve<IKing>();
king.RuleTheCastle();
//清理,应用程序退出
container.Dispose();
那么那些安装者呢?这是一个。
public class RepositoriesInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.Where(Component.IsInSameNamespaceAs<King>())
.WithService.DefaultInterfaces()
.LifestyleTransient());
}
}
要获得更深入的示例,请尝试下面的部分。
示例和教程
通过完成一步一步的教程来学习Windsor。通过探索示例应用程序来展示其功能,请参阅Windsor:
- 基本教程
- 简单的ASP.NET MVC 3应用程序(待查) -从头开始建立。本教程将帮助您快速熟悉Windsor,同时关注容器API的使用情况以及可帮助您充分利用容器的模式。
文档
- Windsor 3.2有什么新功能
- Windsor 3.1有什么新功能
概念
- 控制反转与控制反转容器
- 服务,组件和依赖
- 如何创建组件
- 如何解析依赖关系
使用容器
- 使用容器 - 如何以及在哪里调用它
- Windsor 安装 - 这是如何告诉Windsor关于你的组件
- 注册API参考
- 使用XML配置
- 将参数传递给容器
- AOP,代理和拦截器
- 子容器
- Windsor支持调试器视图和诊断
- Windsor对性能计数器的支持
定制容器
- 扩展点概述
- 生活方式
- 生命周期
- 发布策略
ComponentModel
施工贡献者
扩展容器
- 设备
知道另一个容器
- Castle Windsor为Autofac用户
- Castle Windsor为StructureMap用户