【问题标题】:Public function accessible at design time but inaccessible at runtime公共函数在设计时可访问但在运行时不可访问
【发布时间】:2019-10-31 15:15:36
【问题描述】:

我在 vb.net 中有一个 aspx 文件,它有一个名为 GetOldestYear(string) 的公共函数,VisualStudio 显示为可访问,不会抛出任何错误消息并成功构建。当我调试时,它会遇到调用共享函数的代码行并失败:

编译器错误消息:BC30451:未声明“GetOldestYear”。由于其保护级别,它可能无法访问。

公共功能在公共模块中(我也尝试过有相同问题的共享类)

Public Module Module1
   Public Function GetOldestYear(Query As String) As Integer
      ...
   End Function
End Module

然后我从我的 aspx.vb 文件中的页面加载事件调用

Dim oldestYear As Integer = GetOldestYear("select top 1 Year from table")

如何在设计时访问该函数,但在运行时无法访问该函数?这很可能是我错过的显而易见的事情,但我就是看不到!

【问题讨论】:

  • 您是否尝试过Module1.GetOldestYear("select top 1 Year from table")? (我知道它说您不需要Module1。)另外,“构建”->“清洁解决方案”然后再次构建它。并重新启动 IIS。 Module1 中的任何其他子/功能是否有效?

标签: asp.net vb.net


【解决方案1】:

如果是 Asp.NET 项目,您需要在根项目路径中创建一个名为“App_Code”的文件夹,并将“Module1.vb”放在那里 此文件夹中的所有代码都将编译为 .dll,并且可以在您的所有 Web 应用程序中访问。 此外,您需要确保“Module1”的构建操作是“构建”而不是“内容”。 转到模块属性(选择“Module1.vb”项→右键单击鼠标→属性)并转到Building Action并更改为“Build”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多