为什么我的Web API项目中出现“HttpException”缺少名称空间错误

问题描述 投票:2回答:1

遵循ASP.NET Web Api 2从头到尾构建REST服务一书,我遇到了一个名称空间错误,我无法解决HttpException引用的特定问题。

var httpException = exception as HttpException;

我正在使用C#,我只看到VB.NET中使用的样式,因此可能存在一些问题,即预期的语法风格。更正建议不断尝试小写h来生成httpException,但是HttpException是预期的

这是完整的代码:

    using System.Net;
    using System.Net.Http;
    using System.Web; // bad practice: not usually supposed to be used on non 
    // web application projects
    using System.Web.Http.ExceptionHandling;
    using WebApi2Book.Data.Exceptions;

    namespace WebApi2Book.Web.Common.ErrorHandling
    {
    public class GlobalExceptionHandler : ExceptionHandler
    {
        public override void Handle(ExceptionHandlerContext context)
        {
            var exception = context.Exception;

            var httpException = exception as HttpException; <- red squiggle
            if (httpException != null)
            {
                context.Result = new SimpleErrorResult(context.Request, (HttpStatusCode)httpException.GetHttpCode(), httpException.Message);
                return;
            }
            if (exception is RootObjectNotFoundException)
            {
                context.Result = new SimpleErrorResult(context.Request, HttpStatusCode.NotFound, exception.Message);
                return;
            }
            if (exception is ChildObjectNotFoundException)
            {
                context.Result = new SimpleErrorResult(context.Request, HttpStatusCode.Conflict, exception.Message);
                return;
            }
            context.Result = new SimpleErrorResult(context.Request, HttpStatusCode.InternalServerError, exception.Message);
        }
    }
}
c# asp.net namespaces
1个回答
1
投票

您在评论中提到您的目标是.NET Standard 2.0。很多System.Web库已被淘汰(主要是因为它不是.NET Core的一部分,我相信)。

您应该以4.x框架为目标,以重新获得对此类的访问权限。如果除了.NET Core和.NET Standard之外没有任何其他Web项目类型,则需要转到Visual Studio Installer并选择4.x框架支持。

在VS版本enter image description here旁边的下拉列表中选择“修改”

然后选择ASP.NET和Web Development enter image description here的复选框

然后,在“新建项目”对话框中,您应该看到以下选项:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.