根据 Resharper 的说法,我收到一个 ASP 错误,“Solution MembersOrderEntry.sln
项目成员OrderEntry
MembersOrderEntry\segovias-abq\Default.aspx:1 无法解析符号 'segovias-abq'"
在同一个 Default.aspx 文件中,有一个类似的错误,“Solution MembersOrderEntry.sln
项目成员OrderEntry
MembersOrderEntry\segovias-abq\Default.aspx:1 无法解析符号 '_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’”
最佳答案
在使命名空间名称与其目录路径匹配时,ReSharper 会从命名空间中删除连字符或下划线。在重构期间,除非您允许,否则 ReSharper 不会查看字符串引用。
我相信当您重构时,连字符已从 segovias-abq 命名空间中删除,但该命名空间更改似乎并未在 Default.aspx 的这一部分中得到纠正:Inherits="segovias-abq._Default"
关于asp.net - 为什么这个清晰可见的符号无法解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40922837/