无法使用VS在VB.Net项目中创建新命名空间
我试图在一个新的VB.NET项目中定义新的名称空间和类;但是,VisualStudio不允许我实例化任何新的名称空间/类/方法 我有 在Visual Studio 2019社区中建立一个新项目; 用一个类TestClass和一个方法ShowMessageBox创建了一个新的名称空间SignInSignOut; 尝试将新命名空间导入现有代码隐藏页Default.aspx.vb;和 试图从代码隐藏页的Page_Load方法实例化新类和方法。 尝试将新命名空间导入现有代码隐藏页失败 新的命名空间、类和方法无法使用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方法实例化新类和方法。 尝试将新命名空间导入现有代码隐藏页失败 新的命名空间、类和
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进行调试时,它可以正常工作。