6.10IObjectContentConverterFactory 对象内容转换器工厂

创建于 2026 年 8 月 17 日约 1 分钟读完

IHttpContentConverterFactory 内容转换器工厂未找到匹配的 IHttpContentConverter 内容处理器,系统会回退到使用 IObjectContentConverterFactory 对象内容转换器工厂来进行转换,其内部通过返回 ObjectContentConverter() 实例进行转换。该工厂服务被配置为单例模式,以确保其在应用程序生命周期中的唯一性和稳定性。

以下是使用 IObjectContentConverterFactory 内容转换器工厂与 HttpClient 结合的示例,展示了如何通过其 Read 方法轻松将 HttpResponseMessage 对象转换为目标类型实例。

cs
public class YourService(IObjectContentConverterFactory objectContentConverterFactory)  // .NET8+ 支持主构造函数注入{    public async Task<string> GetStringAsync()    {        var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, "https://furion.net/getuser/100");        using var httpClient = new HttpClient();        var httpResponseMessage = await httpClient.SendAsync(httpRequestMessage);        // 调用 GetConverter<TResult>(new HttpContentConverterContext(httpResponseMessage)) 方法获取对象内容转换器实例        // 随后调用 Read 方法将 HttpResponseMessage 对象转换为目标类型实例        var context = new HttpContentConverterContext(httpResponseMessage);        return await objectContentConverterFactory.GetConverter<string>(context).ReadAsync<string>(context);    }}