【问题标题】:Why is this clearly visible symbol unresolvable?为什么这个清晰可见的符号无法解析?
【发布时间】:2017-04-16 19:27:57
【问题描述】:

根据 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'

【问题讨论】:

  • 命名空间名称中不能有破折号。
  • 谢谢;不知道或不记得(显然);我仍然想知道:那么,这在加尔各答是怎么做到的?
  • @jmcilhinney:如果你在回答中扩展你的评论,我会给你赏金。

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


【解决方案1】:

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

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

Inherits="segovias-abq._Default"

【讨论】:

    猜你喜欢
    • 2017-02-04
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多