VS 2017 / ASP.net - 全局功能无法识别

时间:2017-05-09 15:07:48

标签: asp.net vb.net visual-studio-2010 global-variables visual-studio-2017

我从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中突出显示:

IDE Errors

错误列表中的错误消息:

Error list

也明白我已经尝试了尽可能多的声明变体,例如"公共共享功能,"使调用子共享,将全局函数文档定义为类或模块等。没有任何作用。

我还尝试将GlobalFunctions.vb类放在项目的根目录和名为App_Code的目录中,正如网络上的一些博客帖子中所建议的那样。

由于我在VS 2010中没有遇到过这样的问题,我认为它是2017年的一个错误,正如我所说的,我已经报道过了。但是我想要比我自己更好地检查一下,看看我是否忽略了2010年至2017年间可能发生变化的事情。

有人可以告诉我,如果我做错了吗?或者也许重申一下,这确实是一个错误?

谢谢!

1 个答案:

答案 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

或者使用模块,您不需要声明新实例。

此外,如果仍然无法访问,您应该检查以下事实:您可能只是将文件包含在解决方案中,而不将其包含在项目中

添加新课程:

  • Solution Explorer
  • 右键单击您的项目名称(在我的项目上方)
  • 添加