gpt4 book ai didi

c# - 使用 Autofac 将 WebAPI UrlHelper 注入(inject)服务

转载 作者:太空狗 更新时间:2023-10-29 17:43:26 26 4
gpt4 key购买 nike

我的 WebAPI 项目中有一些 Controller 使用的服务。该服务需要生成 URL,因此理想情况下它将通过构造函数参数获取 UrlHelper

public class MyService
{
public MyService(UrlHelper urlHelper) { ... }
}

我正在使用 Autofac 作为我的 IoC 容器。如何在容器中注册 UrlHelper?它需要一个 HttpRequestMessage,但我不知道如何获取“当前”消息。

最佳答案

使用 RegisterHttpRequestMessage 方法注册当前请求,然后您也可以像这样注册 URL 助手:

public static IContainer SetupContainer(HttpConfiguration config)
{
var containerBuilder = new ContainerBuilder();

// Register your Web API.
containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly());
containerBuilder.RegisterHttpRequestMessage(config);
containerBuilder.Register(x => new UrlHelper(x.Resolve<HttpRequestMessage>()));
containerBuilder.RegisterWebApiFilterProvider(config);
containerBuilder.RegisterWebApiModelBinderProvider();

// Register your other types...

var container = containerBuilder.Build();

// Set the dependency resolver to be Autofac.
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

return container;
}

关于c# - 使用 Autofac 将 WebAPI UrlHelper 注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17294257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com