asp.net-mvc-2 – 如何使用Castle Windsor在MVC中注入UrlHelper

我有一个依赖于UrlHelper的组件,我需要使用Castle Windsor注册. UrlHelper反过来又对RequestContext(和RouteCollection)有所了解.

现在我的控制器有一个类型为UrlHelper的Url属性,但据我所知,它无法真正访问它.

注册我的UrlHelper依赖项的最有效方法是什么(使用流畅的配置)?

解决方法

不漂亮,没有测试,但它应该工作:
container.AddFacility<FactorySupportFacility>();
container.Register(Component.For<UrlHelper>()
    .LifeStyle.PerWebRequest
    .UsingFactoryMethod(() => {
        var context = new HttpContextwrapper(HttpContext.Current);
        var routeData = RouteTable.Routes.GetRouteData(context);
        return new UrlHelper(new RequestContext(context,routeData));
    }));

Windsor的未来版本不需要FactorySupportFacility来使用UsingFactoryMethod.

无论如何,对UrlHelper依赖似乎很奇怪……

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....