【问题标题】:Visual Studio Finding out RootSpaceName of a Class in a subfolderVisual Studio 在子文件夹中找出类的 RootSpaceName
【发布时间】:2011-07-20 16:57:35
【问题描述】:

我有一个具有以下结构的视觉工作室网站解决方案

根文件夹中有一个名为 Default.aspx 的页面

还有一个名为 App_Code 的文件夹,我在其中添加了一个名为 Test2.vb 的类

我想知道如何在 Default.aspx.vb 中调用我的类 Tes2.vb 中的方法

我试过了

Dim test1 As New Test2(这不起作用) 将 test3 调暗为新 United_Site.Test2(添加站点名称也不起作用)

我的 Test2 类代码

Public Class Test2
Public Function ReplaceXSS(ByVal InputString As String) As String
    InputString = InputString.Replace("<script>", "")
    InputString = HttpUtility.HtmlEncode(InputString)
    InputString = InputString.Replace("</script>", "")
    InputString = InputString.Replace("&", "&#38;")
    InputString = InputString.Replace("<", "&#60;")
    InputString = InputString.Replace(">", "&#62;")
    InputString = InputString.Replace("%", "&#37;")
    InputString = InputString.Replace("|", "&#124;")
    InputString = InputString.Replace("$", "&#36;")
    InputString = InputString.Replace("'", "&#39;")
    InputString = InputString.Replace("""", "&#92;")

    ReplaceXSS = InputString
End Function

结束类

还有我的 default.aspx 代码

Partial Public Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim test As New Class1 ' Make an object of that class
    Dim test2 As New Spurs ' Make an object of that class
    Dim test3 As New Test2 <--- Error


End Sub

结束类

好吧,我注意到的另一件事是,如果我创建一个全新的文件夹和一个新类,我可以称之为没有问题,即 Dim test3 As New Test5 和 test5 类位于名为“Classes”的文件夹中。问题似乎是我原来的名为 App_Code 的文件夹类,我相信它是一个 .NET 文件夹,与其他文件夹相比是灰色的,我还从另一个站点复制了这个文件夹。

【问题讨论】:

  • Test2 和 Default 有不同的命名空间吗?
  • 嘿,蒂姆,感谢您回复这是我想要理解的内容,即命名空间您能解释一下这个问题的意思吗?这两个文件都是在同一个 Visual Studio 项目中创建的
  • Visual Studio 默认将项目名称分配为命名空间(除非您在项目属性或代码中覆盖)。我已经很久没有做过网站项目了,但我会查看 Default.aspx 和 Test2.vb 的代码,看看命名空间是什么。我在想(默认情况下)它们应该是相同的,但如果不是,那可能就是问题所在。
  • 嘿,看看页面属性,我看不出如何在 Visual Studio 中找出每个文件的命名空间是什么?
  • 查看源代码 - 如果您有命名空间,它将位于文件顶部附近,在类之前。请参阅@Aristos 答案。

标签: asp.net visual-studio


【解决方案1】:

可能与命名空间声明有关。

检查test2.vb上的命名空间

如果你看到类似的东西

namespace test2

然后转到您喜欢使用test2.vb 的功能的文件并在第一行添加

Imports test2

此外,visualstudio 2010 可以帮助您自动添加此命名空间。如果您将鼠标移到您看到错误的行中,您会看到一个红色标志,建议您做什么,例如可以建议添加 Imports test2

第二个可能的原因

你的类有错误,它们还没有被编译,所以你的程序找不到它们。检查 test2.vb 上的错误。您也可以右键单击解决方案并选择编译您的站点以查看错误消息。

【讨论】:

  • 嘿 aristos,我怎么能找到 test2.vb 的命名空间,它没有“命名空间 test2”之类的东西。
  • @StevieB ether 有任何命名空间吗?
  • 嘿,我正在使用 Visual Studio 2008。嘿 Aristos 不,我看不到任何一个名称空间声明
  • @StevieB 那么你可能在 test2.vb 上得到一个错误并且没有被编译。
  • 我可以毫无错误地构建我的项目,那么如何确保 test2 已编译?我在上面添加了我的代码
猜你喜欢
  • 1970-01-01
  • 2018-07-31
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 2016-09-30
  • 2018-04-13
  • 1970-01-01
相关资源
最近更新 更多