代码之家  ›  专栏  ›  技术社区  ›  Eric Herlitz

在结构图中注入IHttpClientFactory

  •  0
  • Eric Herlitz  · 技术社区  · 4 年前

    我们使用的是旧版本的Structuremap(3.1.9.463)。我已经有一段时间没有同时使用structuremap和HttpClients了,我不知道如何在structuremap中正确地注入IHttpClientFactory。

    简单地使用 bootStrapper.For<IHttpClientFactory>().Use<HttpClient>(); 不起作用

    一个使用示例是

    public class DialogClient : IDialogClient
    {
        private readonly HttpClient _client;
    
        public DialogClient(IHttpClientFactory httpClientFactory)
        {
            _client = httpClientFactory.CreateClient();
            _client.BaseAddress = new Uri(ConfigurationManager.AppSettings["Dialog:url"]);
        }
    }
    

    该项目也使用。NET Framework,而不是Core。

    0 回复  |  直到 4 年前
        1
  •  0
  •   Elchanan Razin    4 年前

    实现接口

    class MyHttpClientFactory: IHttpClientFactory
    {
        public HttpClient CreateClient(string name)
        {
            // logic for creating client here
        }
    }
    

    然后注册

    For<IHttpClientFactory>().Singleton().Use<MyHttpClientFactory>();