Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 转弯';MsgBox';导致编译错误_Asp.net_Vb.net_Winforms_Visual Studio - Fatal编程技术网

Asp.net 转弯';MsgBox';导致编译错误

Asp.net 转弯';MsgBox';导致编译错误,asp.net,vb.net,winforms,visual-studio,Asp.net,Vb.net,Winforms,Visual Studio,我们有一个在Winforms和Web UI之间共享几乎所有代码的应用程序。在winforms版本上进行了更多的测试(它的使用量增加了10倍) 程序员不断地将MsgBox放入共享代码中,因此在测试时,它似乎可以工作。(好的,程序员就是我)(特定于平台的前端抽象出另一个适当的函数,用于在两个平台上显示适当的消息框样式弹出窗口) 我只是在共享代码中没有Winforms而禁用了“Messagebox.Show”。但是VisualBasic很高兴地允许旧的VB6MSGBox,不管发生什么 因此,IIS当然

我们有一个在Winforms和Web UI之间共享几乎所有代码的应用程序。在winforms版本上进行了更多的测试(它的使用量增加了10倍)

程序员不断地将MsgBox放入共享代码中,因此在测试时,它似乎可以工作。(好的,程序员就是我)(特定于平台的前端抽象出另一个适当的函数,用于在两个平台上显示适当的消息框样式弹出窗口)

我只是在共享代码中没有Winforms而禁用了“Messagebox.Show”。但是VisualBasic很高兴地允许旧的VB6MSGBox,不管发生什么

因此,IIS当然会将其吞下,但在web版本上没有错误消息


我是否可以在VisualStudio中的错误中设置为不允许这样做?你可能会想,在这些产品投入生产后,那些愚蠢的程序员(呃,我的意思是,我)会明白其中的道理。他们古老的手指中有太多vb6…

您可以将以下模块添加到项目中。它包括一个
MsgBox
函数,该函数不接受任何参数,并返回一个
布尔值

如果您试图在项目中使用
MsgBox
,编译器应该选择此版本,而不是VB版本。Intellisense将显示“请勿使用VB MsgBox函数”消息

如果忽略Intellisense和带有任何参数的code
MsgBox
,则会出现编译错误,因为函数不带任何参数

如果在没有参数的情况下编写
MsgBox
(这似乎不太可能),它将编译,但即使在Windows窗体环境中运行,也会引发异常

Module DisallowVB
    ''' <summary>DO NOT use the VB MsgBox function</summary>
    Function MsgBox() As Boolean
        Throw New NotImplementedException("MsgBox is not implemented in all cases")
    End Function
End Module
模块不允许VB
''不要使用VB MsgBox函数
函数MsgBox()作为布尔值
抛出新的NotImplementedException(“并非所有情况下都实现MsgBox”)
端函数
端模块

您可以尝试删除
Microsoft.VisualBasic
程序集参考。我建议您花一点时间学习使用合适的记录器库。@steve-这是关于用户交互的;我们有一个日志库thx@sam-我希望组织能简单地。。。完全删除Visual Basic;-)但不是在我的控制之下。程序中还有其他VB库的东西,比如mid(是的,我们知道substr…)和其他20个。哦,很抱歉,那么我还不明白这些信息的作用。我认为它们是为了调试目的而存在的,当您编译用于生产的代码时,您希望在任何地方都删除它们。