2

我有一个带有 MVC 应用程序和 Web API 的解决方案。它们位于不同的项目和域中(使用 CORS)。我将其构建为 Web API,以便灵活地添加消费者,但目前我的 MVC 应用程序是唯一的消费者。因此,我正在争论是在我的 MVC 控制器中使用 HttpClient 还是直接实例化 ApiController。

在任何一种情况下,我都在使用依赖注入(Autofac),所以我也想知道如何配置它,因为 HttpClient 或 ApiController 都没有任何类型的接口,我可以像通常那样通过构造函数参数注入,所以我是不知道如何处理。

注入实例的生命周期范围应该是什么?HttpClient 可能应该是 Singleton,因为不鼓励在每次请求后处理它。

注意通过调用 API 返回用于填充图表的大型数据集,这就是为什么我稍微远离 HttpClient,因为我觉得使用 Http 会产生额外的开销。直接实例化 ApiController 是反模式吗?

谢谢

4

1 回答 1

4

你总是可以这样做

var httpClient = new HttpClient(new HttpServer(GlobalConfiguration.Configuration));

这允许您继续使用 HttpClient,但请求会直接传递到 WebApi 服务器,而无需发出网络请求。这样,如果您以后决定分离 WebAPI,您的客户端代码不会改变

于 2013-04-07T00:14:23.590 回答