c# - 如何通过 Unity 容器配置 HttpClient?

标签 c# .net unity-container asp.net-web-api

我正在尝试向统一容器注册 HttpClient 对象的实例,以便它可以在整个应用程序中使用,但遇到错误 - “HttpMessageHandler 类型没有可访问的构造函数。”

这是我用来向 Unity 注册 HttpClient 的代码-

private static IUnityContainer BuildUnityContainer()
    {
        var container = new UnityContainer();

        container.RegisterType<HttpClient>(
            new InjectionProperty("BaseAddress", new Uri(ConfigurationManager.AppSettings["ApiUrl"]))); 

        return container;
    }

最佳答案

您可以使用工厂方法来注册它:

container.RegisterType<HttpClient>(
    new InjectionFactory(x => 
        new HttpClient { BaseAddress = new Uri(ConfigurationManager.AppSettings["ApiUrl"]) }
    )
); 

关于c# - 如何通过 Unity 容器配置 HttpClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14697053/

相关文章:

c# - 输入记录前勾选列表框

c# - 使用 MVC 过滤器的国际化问题

c# - 从 VS 2010 扩展在代码编辑器中打开无文件源代码文档

dependency-injection - 如何使用 Unity 将事件处理程序注入(inject)事件

c# - 如何使用带有构造函数注入(inject)的 Unity 在 wpf 中使用 subview & 及其 viewmodel2 更新 viewmodel1 的父 View 中的状态

C#/报表查看器 : How to use parameters without specifying parameter names

c# - 如何使用特定网络接口(interface)(或特定源 IP 地址)Ping?

.net - 在哪里可以找到 .NET 版本使用统计信息?

c# - 我可以通过 Web 服务从 Mono (Unity 3D) 访问 Sharepoint 列表吗

c# - 使用 LINQ 从数据库中检索树结构