Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用VS在VB.Net项目中创建新命名空间_Vb.net_Namespaces_Visual Studio 2019 - Fatal编程技术网

无法使用VS在VB.Net项目中创建新命名空间

无法使用VS在VB.Net项目中创建新命名空间,vb.net,namespaces,visual-studio-2019,Vb.net,Namespaces,Visual Studio 2019,我试图在一个新的VB.NET项目中定义新的名称空间和类;但是,VisualStudio不允许我实例化任何新的名称空间/类/方法 我有 在Visual Studio 2019社区中建立一个新项目; 用一个类TestClass和一个方法ShowMessageBox创建了一个新的名称空间SignInSignOut; 尝试将新命名空间导入现有代码隐藏页Default.aspx.vb;和 试图从代码隐藏页的Page_Load方法实例化新类和方法。 尝试将新命名空间导入现有代码隐藏页失败 新的命名空间、类和

我试图在一个新的VB.NET项目中定义新的名称空间和类;但是,VisualStudio不允许我实例化任何新的名称空间/类/方法

我有

在Visual Studio 2019社区中建立一个新项目; 用一个类TestClass和一个方法ShowMessageBox创建了一个新的名称空间SignInSignOut; 尝试将新命名空间导入现有代码隐藏页Default.aspx.vb;和 试图从代码隐藏页的Page_Load方法实例化新类和方法。 尝试将新命名空间导入现有代码隐藏页失败

新的命名空间、类和方法

Imports Microsoft.VisualBasic

Namespace SignInSignOut
    Public Class TestClass
        Public Shared Sub ShowMessageBox(ByVal sString As String)
            MsgBox(sString)
        End Sub
    End Class
End Namespace
在Default.aspx.vb代码隐藏页上尝试导入Namespace.Class并实例化方法

Imports SignInSignOut.TestClass

Public Class _Default
    Inherits Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        ShowMessageBox("This is just a test!")

    End Sub
End Class
编辑
我通过重新安装VisualStudio2019社区解决了这个问题。我重新安装了VS 2010 Pro的一个旧版本,该示例按预期运行,这使我相信我可能与VS 2019社区有问题

到目前为止,我注意到四件事:

导入名称空间,而不是类(至少目前是这样):

Imports SignInSignOut

Public Class _Default
    Inherits Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        TestClass.ShowMessageBox("This is just a test!")

    End Sub
End Class
确保这是名称空间的全名,并且没有从项目继承更高级别的名称空间:

Imports MyProjectName.SignInSignOut
ASP.NET Webforms对代码应该放在哪里很挑剔。将其放入解决方案的App_Code文件夹中

MsgBox不会做webforms项目中您期望的事情。它将打开一个消息框,但它将在web服务器上打开,而不是在用户机器上的浏览器中打开。消息框仍然会阻止线程,直到有人将其解除,这是web服务器的一个问题。
到目前为止,我注意到四件事:

导入名称空间,而不是类(至少目前是这样):

Imports SignInSignOut

Public Class _Default
    Inherits Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        TestClass.ShowMessageBox("This is just a test!")

    End Sub
End Class
确保这是名称空间的全名,并且没有从项目继承更高级别的名称空间:

Imports MyProjectName.SignInSignOut
ASP.NET Webforms对代码应该放在哪里很挑剔。将其放入解决方案的App_Code文件夹中

MsgBox不会做webforms项目中您期望的事情。它将打开一个消息框,但它将在web服务器上打开,而不是在用户机器上的浏览器中打开。消息框仍然会阻止线程,直到有人将其解除,这是web服务器的一个问题。
在visual basic中,与c不同,名称空间通常分为两部分。当您创建项目时,它会自动为您创建一个名称空间,您可以在项目属性-默认名称空间中看到该名称空间。在这里,您最初将找到与程序集名称和原始项目名称中相同的值。现在,让我们假设,这个名字是MyWebProject


现在,当您添加一个新文件时,它不会添加名称空间块。您拥有自动命名空间MyWebProject。如果添加名称空间块(如MyFirstNamespace),则此块中的类将是-MyWebProject.MyFirstNamespace,因此VB.net中的名称空间由两部分组成

在visual basic中,与c不同,名称空间通常分为两部分。当您创建项目时,它会自动为您创建一个名称空间,您可以在项目属性-默认名称空间中看到该名称空间。在这里,您最初将找到与程序集名称和原始项目名称中相同的值。现在,让我们假设,这个名字是MyWebProject


现在,当您添加一个新文件时,它不会添加名称空间块。您拥有自动命名空间MyWebProject。如果添加名称空间块(如MyFirstNamespace),则此块中的类将是-MyWebProject.MyFirstNamespace,因此VB.net中的名称空间由两部分组成

包含TestClass的项目是否在项目属性中指定了根命名空间?此外,如果您正在获取错误,则应该将它们包含在您的问题中。为了避免由于VB的默认命名空间而导致的任何歧义,请考虑将您添加的命名空间赋给.No。您的包含TestClass的项目是否具有项目属性中指定的根命名空间?此外,如果您正在获得错误,您应该将它们包含在您的问题中。为了避免由于VB的默认命名空间引起的任何歧义,请考虑将您添加的命名空间赋给乔尔。谢谢您的响应。不幸的是,完整名称空间方法步骤2也失败了。“WebApp1.SignInSignOut”没有选项。事实上,新文件被放在App_代码文件夹中。是的,我意识到MsgBox方法会破坏生产服务器上的web应用程序;不过,在使用localhost.Joel进行调试时,它可以正常工作,谢谢您的回复。不幸的是,完整名称空间方法步骤2也失败了。“WebApp1.SignInSignOut”没有选项。事实上,新文件被放在App_代码文件夹中。是的,我意识到MsgBox方法会破坏生产服务器上的web应用程序;但是,在使用localhost进行调试时,它可以正常工作。