C# 为什么不是';t System.Net.Http.Headers.HttpResponseHeaders可索引?

C# 为什么不是';t System.Net.Http.Headers.HttpResponseHeaders可索引?,c#,dotnet-httpclient,C#,Dotnet Httpclient,要从HttpHeaders(或者在我的例子中是HttpResponseHeaders)实例检索标题值,我必须调用GetValues,例如response.Headers.GetValues(“内容长度”)。这很不方便 似乎支持这样的东西是直截了当的: public IEnumerable<string> this[string headerName] { return GetValues(GetHeaderDescriptor(headerName)); } public

要从
HttpHeaders
(或者在我的例子中是
HttpResponseHeaders
)实例检索标题值,我必须调用
GetValues
,例如
response.Headers.GetValues(“内容长度”)
。这很不方便

似乎支持这样的东西是直截了当的:

public IEnumerable<string> this[string headerName]
{
    return GetValues(GetHeaderDescriptor(headerName));
}
public IEnumerable this[string headerName]
{
返回GetValues(GetHeaderDescriptor(headerName));
}

HttpHeaders
不支持这一功能的原因是什么,以便启用更简单的
响应。Headers[“Content Length”]

如果您想要一种直接获取头值的方法,可以使用特定于Http的实现,如HttpWebRequest和

例如:

        var testRequest = (HttpWebRequest)WebRequest.Create("https://stackoverflow.com/");
        var testResponse = (HttpWebResponse)testRequest.GetResponse();
        Console.WriteLine(testResponse.Headers["Content-Length"]);

Asp.Net Core的IHeaderDictionary可以很好地解决这个问题,我不明白HttpClient的头类型有什么问题。我投票将这个问题作为主题外的问题来结束,因为“我不反对@MickyD-如果没有技术上的原因,这不起作用,让我们结束这个问题(也许是为了支持相关类的PR!)因为看到HttpWebResponse支持这一点很高兴,但我认为HttpClient是处理HTTP请求的继承者/更现代的方法,所以必须回到这样做并不理想