cro*_*sek 5 asp.net http-headers c#-4.0
在 WCF (System.Net.WebHeaderCollection) 中,可以使用 System.Net.HttpRequestHeader 枚举或标头字符串检索标头值:
WebOperationContext.Current.IncomingRequest.Headers[httpRequestHeaderEnum]
// or
WebOperationContext.Current.IncomingRequest.Headers.Get(rawHeaderString)
Run Code Online (Sandbox Code Playgroud)
但在 ASP.NET 中,标头位于仅接受标头字符串的 NameValueCollection 中:
HttpContext.Current.Request.Headers[rawHeaderString]
Run Code Online (Sandbox Code Playgroud)
为了将枚举用于 ASP.NET,从枚举 System.Net.HttpRequestHeader 到其标头字符串的映射在哪里?
小智 0
编写一个映射方法怎么样?供参考: HttpRequestHeader 枚举
您可以只制作一个映射表,或者使用从Binary Worrier 的帖子中获取的代码,您可以执行以下操作:
public static string TranslateToHttpHeaderName(HttpRequestHeader enumToTranslate)
{
const string httpHeaderNameSeparator = "-";
string enumName = enumToTranslate.ToString();
var stringBuilder = new StringBuilder();
// skip first letter
stringBuilder.Append(enumName[0]);
for (int i = 1; i < enumName.Length; i++)
{
if (char.IsUpper(enumName[i])) stringBuilder.Append(httpHeaderNameSeparator);
stringBuilder.Append(enumName[i]);
}
// Cover special case for 2 character enum name "Te" to "TE" header case.
string headerName = stringBuilder.ToString();
if (headerName.Length == 2) headerName = headerName.ToUpper();
return headerName;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2789 次 |
最近记录: |