我从VS 2010(VB)一直跳到VS 2017,这可能是个错误。我已经报告过,我已经因为错误而放慢了速度。我最近担心的是访问我在VS 2010中从未遇到过问题的全局函数类。我已经报告了它并且它是分类的,但是我想确保版本中的某些内容没有变化2010年,希望有人能告诉我。
基本上发生的是全局类,无论它如何配置,都不被任何其他类识别。在表单类中包含引用会导致IDE将其标记为错误。例如,GlobalFunctions.vb文档中的代码:
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_Code
的目录中,正如网络上的一些博客帖子中所建议的那样。
由于我在VS 2010中没有遇到过这样的问题,我认为它是2017年的一个错误,正如我所说的,我已经报道过了。但是我想要比我自己更好地检查一下,看看我是否忽略了2010年至2017年间可能发生变化的事情。
有人可以告诉我,如果我做错了吗?或者也许重申一下,这确实是一个错误?
谢谢!
答案 0 :(得分:2)
尝试删除并重新创建GlobalFunction.vb
,因为它可能在过去重命名,但在项目中无法正确更正。
我认为这很正常。您使用的是Class
而不是Module
,因此您需要声明一个新实例,如下所示:
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
或者使用模块,您不需要声明新实例。
此外,如果仍然无法访问,您应该检查以下事实:您可能只是将文件包含在解决方案中,而不将其包含在项目中
添加新课程: