0

根据 Resharper 的说法,我收到 ASP 错误,“解决方案 MembersOrderEntry.sln Project MembersOrderEntry MembersOrderEntry\segovias-abq\Default.aspx:1 无法解析符号 'segovias-abq'”

在同一个 Default.aspx 文件中,有一个类似的错误,“<em>Solution MembersOrderEntry.sln Project MembersOrderEntry MembersOrderEntry\segovias-abq\Default.aspx:1 Cannot resolve symbol '_Default'”

为什么这些符号(“segovias-abq”和“_Default”)无法解析?该项目包含许多名为 Default.aspx 的文件,其下方是 Default.aspx.vb;他们中的大多数都没有错误。但是在让 Resharper “修复”时髦的命名空间(它认为它们是错误的)之后,我得到了其中四个错误。

为什么大部分 Default.aspx 文件能够解析其父文件,而这个不是?正如您在此处看到的,失败的文件夹和其他文件夹之间的关系是相同的(文件夹名称,其下为 Default.aspx,其下为 Default.aspx.vb):

在此处输入图像描述

Seashore、SimonLeeman、Stern、Weyand 和许多其他人都可以正常工作。

失败的 Default.aspx 的全部内容是:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="segovias-abq._Default" title="Web Order Entry" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Order Entry Login Page</title>
</head>
<body>
<form id="form1" runat="server">
    <div>
    </div>
</form>
</body>
</html>

...它的 Default.aspx.vb 是:

Partial Class _Default
    Inherits Page

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        Session("SelectedMenu") = "Home"
        Response.Redirect("../Login.aspx?MemberNo=B1212")
    End Sub
End Class

OTOH,非失败 Default.aspx 之一的全部内容是:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Weyand._Default" title="Web Order Entry" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Order Entry Login Page</title>
</head>
<body>
<form id="form1" runat="server">
    <div>
    </div>
</form>
</body>
</html>

...其 Default.aspx.vb 是:

Namespace Weyand
    Partial Class _Default
        Inherits Page

        Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
            Session("SelectedMenu") = "Home"
            Response.Redirect("../Login.aspx?MemberNo=031")
        End Sub
    End Class
End NameSpace

IOW,除了名称空间之外,它们似乎是相同的。但即使我添加了似乎是预期的内容:

Namespace segovias-abq

……什么都没改变;我仍然得到,“无法解析符号'segovias-abq'

4

1 回答 1

1

当命名空间名称与其目录路径匹配时,ReSharper 会从命名空间中删除连字符或下划线。在重构期间,除非您允许,否则 ReSharper 不会查看字符串引用。

我相信当您重构时,连字符已从 segovias-abq 命名空间中删除,但在 Default.aspx 的这一部分中似乎没有更正命名空间更改:

Inherits="segovias-abq._Default"

于 2017-01-24T18:08:45.593 回答