Asp.net 转弯';MsgBox';导致编译错误
我们有一个在Winforms和Web UI之间共享几乎所有代码的应用程序。在winforms版本上进行了更多的测试(它的使用量增加了10倍) 程序员不断地将MsgBox放入共享代码中,因此在测试时,它似乎可以工作。(好的,程序员就是我)(特定于平台的前端抽象出另一个适当的函数,用于在两个平台上显示适当的消息框样式弹出窗口) 我只是在共享代码中没有Winforms而禁用了“Messagebox.Show”。但是VisualBasic很高兴地允许旧的VB6MSGBox,不管发生什么 因此,IIS当然会将其吞下,但在web版本上没有错误消息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当然
我是否可以在VisualStudio中的错误中设置为不允许这样做?你可能会想,在这些产品投入生产后,那些愚蠢的程序员(呃,我的意思是,我)会明白其中的道理。他们古老的手指中有太多vb6…您可以将以下模块添加到项目中。它包括一个
MsgBox
函数,该函数不接受任何参数,并返回一个布尔值
如果您试图在项目中使用MsgBox
,编译器应该选择此版本,而不是VB版本。Intellisense将显示“请勿使用VB MsgBox函数”消息
如果忽略Intellisense和带有任何参数的codeMsgBox
,则会出现编译错误,因为函数不带任何参数
如果在没有参数的情况下编写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个。哦,很抱歉,那么我还不明白这些信息的作用。我认为它们是为了调试目的而存在的,当您编译用于生产的代码时,您希望在任何地方都删除它们。