如果找不到密钥,如何安全地访问actionContext.Request.Headers.GetValues?

loy*_*low 16 c# asp.net-mvc asp.net-web-api

我目前正在这样做,但如果找不到密钥则抛出异常.

此代码段位于ActionFilterAttribute覆盖方法中继承的Web api过滤器内部OnActionExecuting.

if (actionContext.Request.Headers.GetValues("some_key") != null 
                && actionContext.Request.Headers.GetValues("some_key").First() == "hello")
{

}
Run Code Online (Sandbox Code Playgroud)

我是否被迫将其包裹在try/catch中?

Yur*_*ich 34

class MyFilter : System.Web.Http.Filters.ActionFilterAttribute
{
    public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
    {
        IEnumerable<string> values;
        if (actionContext.Request.Headers.TryGetValues("some_key", out values) && values.First() == "hello")
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)