VS 2017/ASP.net-未识别全局函数
我从VS2010(VB)一直跳到VS2017,这可能是个错误。我已经被虫子拖慢了,我已经报告过了。我最近关心的是如何访问一个在VS2010中从未遇到过问题的全局函数类。我已经报告过了,现在正在进行分类,但我想确保自2010年以来版本中没有发生变化,希望这里的人能告诉我 从本质上讲,全局类无论如何配置,都不会被任何其他类识别。在表单类中包含引用会导致IDE将其标记为错误。例如,GlobalFunctions.vb文档中的代码:VS 2017/ASP.net-未识别全局函数,asp.net,vb.net,visual-studio-2010,global-variables,visual-studio-2017,Asp.net,Vb.net,Visual Studio 2010,Global Variables,Visual Studio 2017,我从VS2010(VB)一直跳到VS2017,这可能是个错误。我已经被虫子拖慢了,我已经报告过了。我最近关心的是如何访问一个在VS2010中从未遇到过问题的全局函数类。我已经报告过了,现在正在进行分类,但我想确保自2010年以来版本中没有发生变化,希望这里的人能告诉我 从本质上讲,全局类无论如何配置,都不会被任何其他类识别。在表单类中包含引用会导致IDE将其标记为错误。例如,GlobalFunctions.vb文档中的代码: Public Class GlobalFunctions P
Public Class GlobalFunctions
Public Function DecodeBase64(strEncoded As String) As String
Dim byt As Byte() = Convert.FromBase64String(strEncoded)
Return (System.Text.ASCIIEncoding.ASCII.GetString(byt))
End Function
Public Function EncodeBase64(strUnencoded As String) As String
Dim byt As Byte() = System.Text.Encoding.UTF8.GetBytes(strUnencoded)
Return (Convert.ToBase64String(byt))
End Function
End Class
以及表单页中的调用方法:
If elemSetting.Attributes("name").Value = "LoginName" Then
Session("MailLoginName") = globalfunctions.DecodeBase64(elemSetting.Attributes("value").Value)
End If
If elemSetting.Attributes("name").Value = "LoginPass" Then
Session("MailLoginPass") = globalfunctions.DecodeBase64(elemSetting.Attributes("value").Value)
End If
此处,IDE中突出显示了错误:
以及错误列表中的错误消息:
也要理解,我已经尝试了尽可能多的声明变体,例如“公共共享函数”,使调用子共享,将全局函数文档定义为类或模块,等等。没有任何效果
我还尝试将GlobalFunctions.vb类放在项目的根目录和名为App\u code
的目录中,正如网上一些博客文章所建议的那样
由于我在VS 2010中没有遇到过类似的问题,我认为这是2017年的一个bug,正如我所说,我已经报告过了。但我想用比我更聪明的头脑来检查一下,看看我是否忽略了2010年到2017年间可能发生变化的某些事情
有人能告诉我我做错了什么吗?或者对我来说,这确实是一个bug
谢谢 尝试删除并重新创建您的
GlobalFunction.vb
,就像在过去重命名它一样,它在项目中的任何地方都无法正确更正
我认为这是正常的。您使用的是类
,而不是模块
,因此您需要声明一个新实例,如下所示:
Dim Globaler As New GlobalFunctions
If elemSetting.Attributes("name").Value = "LoginName" Then
Session("MailLoginName") = Globaler.DecodeBase64(elemSetting.Attributes("value").Value)
End If
If elemSetting.Attributes("name").Value = "LoginPass" Then
Session("MailLoginPass") = Globaler.DecodeBase64(elemSetting.Attributes("value").Value)
End If
或者使用模块,就不需要声明新实例
此外,如果仍然无法访问该文件,您应该检查以下事实,即您可能只是将该文件包含到解决方案中,而没有将其包含到项目中
要添加新类,请执行以下操作:
- 解决方案浏览器
- 右键单击项目名称(我的项目上方)
- 加
- 阶级