asp.net - 为什么这个清晰可见的符号无法解析?

标签 asp.net vb.net namespaces namespace-organisation

根据 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):

enter image description here

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/

相关文章:

asp.net - 我如何对已经内置到 dll 中的程序集进行签名,特别是 flute.dll

c# - 如何根据 ASP.NET//C# 中的内容更改 ListView 中图像的 CSS 类

c# - .NET Entity Framework 与复制的 SQL 服务器的使用

vb.net - 即使部署到 Azure,“未在托管服务或 Development Fabric 中运行”

c# - 在 Blazor 中选择框绑定(bind)

.net - DomainService 是否在执行 linq 之前加载所有实体?

c# - WebBrowser aspx 的命名空间

c# - 使用类文件/引用它?

python - 理解 Python 中的命名空间

c# - 在 ASPX 页面上获取 'too many parameters passed' 到存储过程