Chr*_*lsh 8 asp.net webforms ninject .net-framework-version
我正在尝试将IHttpClientFactoryNInject 添加到我的 C# ASP.NET Web 窗体应用程序中,以便我可以在服务中使用它。然而,网上有很多关于使用IHttpClientFactory(而不是创建大量实例)的文档:HttpClient
IHttpClientFactory使用 Microsoft 自己的依赖注入系统而不是 NInject 进行连接。那么,我尝试了什么?好吧,我不知道从哪里开始,因为尽管IHttpClientFactory在命名空间中定义良好System.Net.Http,但没有公开可将其绑定到的具体实现。我想写这个:
public class ClassLibNinjectModule : NinjectModule
{
public override void Load()
{
Bind<System.Net.Http.IHttpClientFactory>().ToConstant<System.Net.Http.HttpClientFactory>();
}
}
Run Code Online (Sandbox Code Playgroud)
然而:
System.Net.Http.HttpClientFactory是静态类型并且它不实现System.Net.Http.IHttpClientFactory(不同的方法:CreateClient()vs Create())谁能告诉我哪里出错了?谢谢。
安装nuget包:
Microsoft.Extensions.Http
Microsoft.Extensions.DependencyInjection
Microsoft.Extensions.Hosting
Run Code Online (Sandbox Code Playgroud)
接下来添加到您的 global.asax.cs:
using Microsoft.Extensions.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace....
....
public static IServiceProvider ServiceProvider;
void Application_Start(object sender, EventArgs e)
{
var hostBuilder = new HostBuilder();
hostBuilder.ConfigureServices(ConfigureServices);
var host = hostBuilder.Build();
ServiceProvider = host.Services;
}
void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient(); //extension method that add IHttpClientFactories
*inject services here*
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3573 次 |
| 最近记录: |