[英]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.