1. 建立 ASP.NET Core 應用程式並設定 IHttpClientFactory
首先,在你的 ASP.NET Core 應用程式中配置 IHttpClientFactory。這通常是在 Startup.cs 中完成的。
Startup.cs
csharp
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient(); // 註冊 IHttpClientFactory 服務
services.AddTransient(); // 註冊你的服務
}
// 其他設定...
}
2. 在 Class Library 中使用 IHttpClientFactory
接下來,在你的 Class Library 中建立一個服務類別,並注入 IHttpClientFactory。
IMyService.cs (Class Library)
csharp
public interface IMyService
{
Task GetDataAsync();
}
MyService.cs (Class Library)
csharp
using System.Net.Http;
using System.Threading.Tasks;
public class MyService : IMyService
{
private readonly IHttpClientFactory _httpClientFactory;
public MyService(IHttpClientFactory httpClientFactory)
{
_httpClientFactory = httpClientFactory;
}
public async Task GetDataAsync()
{
var client = _httpClientFactory.CreateClient();
var response = await client.GetAsync("https://api.example.com/data");
response.EnsureSuccessStatusCode();
var data = await response.Content.ReadAsStringAsync();
return data;
}
}
3. 在 ASP.NET Core 應用程式中使用 Class Library 中的服務
最後,在 ASP.NET Core 應用程式中使用你在 Class Library 中建立的服務。
HomeController.cs (ASP.NET Core 應用程式)
csharp
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
public class HomeController : Controller
{
private readonly IMyService _myService;
public HomeController(IMyService myService)
{
_myService = myService;
}
public async Task Index()
{
var data = await _myService.GetDataAsync();
ViewData["Data"] = data;
return View();
}
}
4. 設定依賴注入
確保你的 ASP.NET Core 應用程式已正確設定依賴注入,以便 IHttpClientFactory 和你的服務可以被注入。
Startup.cs
csharp
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient(); // 註冊 IHttpClientFactory 服務
services.AddTransient(); // 註冊你的服務
}
// 其他設定...
}
5. 總結
以下是主要步驟的總結:
在 ASP.NET Core 應用程式中註冊 IHttpClientFactory。
在 Class Library 中建立服務類別並注入 IHttpClientFactory。
在 ASP.NET Core 應用程式中使用 Class Library 中的服務。
這樣,你就可以在 Class Library 中使用 IHttpClientFactory,並將這些服務注入到你的 ASP.NET Core 應用程式中,實現高效的 HttpClient 管理和重用。