第一步创建controler 注入类

public class ApiControllersInstaller : IWindsorInstaller

{

 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
       container.Register(Classes.FromThisAssembly().BasedOn<IController>().LifestyleTransient());
}

}

第二步创建windsor安装类

public static class WindsorBootstrapper
{
     private static IWindsorContainer _container;

public static void Initialize()
{
     _container = new WindsorContainer();

_container.Install(
      FromAssembly.This(),
      FromAssembly.Containing<RepositoriesInstaller>(),
      FromAssembly.Containing<ServicesInstaller>());

_container.Register(Component.For<IWindsorContainer>().Instance(_container).LifestyleSingleton());
    var controllerFactory = new WindsorControllerFactory(_container.Kernel);
    ControllerBuilder.Current.SetControllerFactory(controllerFactory);
}

public static IWindsorContainer Container()
{
     return _container;
}

}

第三步创建 WindsorControllerFactory 工厂类

public class WindsorControllerFactory : DefaultControllerFactory

{

private readonly IKernel _kernel;

public WindsorControllerFactory(IKernel kernel)
{
  _kernel = kernel;
}

public override void ReleaseController(IController controller)
{
     _kernel.ReleaseComponent(controller);
}

protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)

{

if (controllerType == null)
   {
        throw new HttpException(404, string.Format("The controller for path '{0}' could not be found.", requestContext.HttpContext.Request.Path));
    }
    return (IController)_kernel.Resolve(controllerType);

}

}

第四步 在 Global.asax 中调用windsor安装类

protected void Application_Start()
{

   WindsorBootstrapper.Initialize();

}

最新文章

  1. 使用Docker Mysql 5.7
  2. flume坑之channel.transactionCapacity和HdfsSink.batchSize
  3. python 中md5 和 sha1 加密, md5 + os.urandom 生成全局唯一ID
  4. iOS获取的NSDate date时间与实际相差8个小时
  5. php 根据指定的键对多维数组进行排序
  6. linux查看tomcat版本
  7. window窗口-button(按钮)-dialog(对话框,带按钮)
  8. web前端+javascript+h5电子书籍和实战分享
  9. 【ASP.NET MVC 学习笔记】- 04 依赖注入(DI)
  10. Dynamics CRM 导入用户数据错误 could not retrieve salesperson role
  11. c#子类序列化与父类序列化(Serializable)的区别
  12. PHP中文转拼音函数
  13. 【Codeforces 1114F】Please, another Queries on Array?
  14. Android对接微信支付体验
  15. bzoj 3237 连通图 - 并查集 - 线段树
  16. 【WPF】添加自定义字体
  17. 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法
  18. 关于web.xml中的&lt;welcome-file-list&gt;中的默认首页资料
  19. 使用ShardingJdbc分表
  20. 1088 Rational Arithmetic

热门文章

  1. SpringBoot非官方教程 | 第十九篇: 验证表单信息
  2. WPF窗口模板——Style样式
  3. c#分析SQL语句
  4. 编写可维护的JavaScript之编程风格
  5. 构建高可靠hadoop集群之4-权限指引
  6. pyqt 多窗口跳转
  7. ffmpeg安装配置以及库调用
  8. C++ vector二维数组
  9. PHP.41-TP框架商城应用实例-后台16-商品属性2-AJAX添加、删除
  10. uber司机已经激活了,就是还没有上传头