为什么这个清晰可见的符号无法解决?

时间:2016-12-02 00:32:09

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

根据Resharper的说法,我得到了一个ASP错误," Solution MembersOrderEntry.sln     Project MembersOrderEntry       MembersOrderEntry \ segovias-abq \ Default.aspx:1无法解析符号' segovias-abq' "

在同一Default.aspx文件中,存在类似的错误," 解决方案MembersOrderEntry.sln     Project MembersOrderEntry       MembersOrderEntry \ segovias-abq \ Default.aspx:1无法解析符号' _Default' "

为什么这些符号(' segovias-abq'和#39; _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

......它什么都没改变;我还是得到了,&#34; 无法解析符号&#39; segovias-abq&#39; &#34;

1 个答案:

答案 0 :(得分:1)

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

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

Inherits="segovias-abq._Default"