繁体   English   中英

如何在 ASP.NET MVC 中具有构造函数的依赖注入中注册服务

[英]How to register service in dependency injection who have a constructor in ASP.NET MVC

我有服务类及其接口命名:

IBusApi, BusApi

我可以像这样轻松地在 Autofac 中注册它

builder.RegisterType<BusApi>().As<IBusApi>();

但现在我有一个注入HttpClient服务的构造函数

public BusApi(HttpClient http)
{
    _http = http ;
}

如何在 DI 中注册该服务?

考虑到它有一个构造函数

所有 DI/IOC 库的答案都是一样的。

对于您注册的类型(此处为BusApi )。 该类型的构造函数中的所有类型也必须在 DI 容器(此处为HttpClient )中注册/解析。

所以你可以做一个builder.RegisterType<HttpClient>()builder.RegisteInstance(new HttpClient(..) )

关于注册HttpClient您也可以阅读: https : HttpClient

基本上,您需要在 DI 容器的构造函数中注册所有类型。

所以你可以像这样解决你的问题

builder.Register(c => new HttpClient()).As<HttpClient>();

阅读以下链接以更好地理解

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM