如何在ASP.NET中将IHttpClientFactory添加到NInject

如何在ASP.NET中将IHttpClientFactory添加到NInject,asp.net,webforms,ninject,.net-framework-version,Asp.net,Webforms,Ninject,.net Framework Version,我正在尝试将IHttpClientFactory添加到我的C#ASP.NET Web表单应用程序中的NInject,以便在服务中使用它。网上有很多关于使用(而不是创建大量HttpClient实例)的文档,但是: 文档/示例基于使用.NET Core接口,我使用ASP.NET(即.NET Framework),例如 文档往往是关于使用Microsoft自己的依赖项注入系统而不是NInject连接IHttpClientFactory 那么,我试过什么?嗯,我真的不知道从哪里开始,因为虽然IHttpC

我正在尝试将
IHttpClientFactory
添加到我的C#ASP.NET Web表单应用程序中的NInject,以便在服务中使用它。网上有很多关于使用(而不是创建大量
HttpClient
实例)的文档,但是:

  • 文档/示例基于使用.NET Core接口,我使用ASP.NET(即.NET Framework),例如
  • 文档往往是关于使用Microsoft自己的依赖项注入系统而不是NInject连接IHttpClientFactory
  • 那么,我试过什么?嗯,我真的不知道从哪里开始,因为虽然
    IHttpClientFactory
    System.Net.Http
    名称空间中定义得很好,但是没有具体的实现可以绑定到它。我想写这封信:

    public class ClassLibNinjectModule : NinjectModule
    {
        public override void Load()
        {
            Bind<System.Net.Http.IHttpClientFactory>().ToConstant<System.Net.Http.HttpClientFactory>();
        }
    }
    
    公共类ClassLibNinjectModule:NinjectModule
    {
    公共覆盖无效负载()
    {
    Bind().ToConstant();
    }
    }
    
    然而:

  • System.Net.Http.HttpClientFactory
    是一种静态类型,它不实现
    System.Net.Http.IHttpClientFactory
    (不同的方法:
    CreateClient()
    Create()
  • 我似乎不知道如何将服务绑定到静态提供者

  • 有人能告诉我哪里出了问题吗?谢谢。

    安装nuget软件包:

    Microsoft.Extensions.Http
    Microsoft.Extensions.DependencyInjection
    Microsoft.Extensions.Hosting
    
    下一步添加到您的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*
    }
    

    也有这个问题。在我的项目中,thera只是九个模块。没有问题,谢谢。我混合使用
    Microsoft.Extensions.DependencyInjection
    Ninject
    ,这有什么关系吗?有一些缺点。以下是一些链接: