我有一个在设计师中引发异常的函数。如果设计师加载它,我可以避免调用该函数吗?是否有比try catch更好的属性或其他东西?
更多细节: 我的意思是win表单的Visual Studio设计器。我的表单使用单例,在初始化时调用LoadProject()。现在我想避免设计师调用LoadProject()函数。
我有一个在设计师中引发异常的函数。如果设计师加载它,我可以避免调用该函数吗?是否有比try catch更好的属性或其他东西?
更多细节: 我的意思是win表单的Visual Studio设计器。我的表单使用单例,在初始化时调用LoadProject()。现在我想避免设计师调用LoadProject()函数。
有几种方法可以检测您是否处于设计模式:
Application.ExecutablePath.ToLower().IndexOf("devenv.exe")
检查当前应用程序路径是否包含devenv.exe
。如果包含,则该控件由Visual Studio实例化。有点可怕,但它有效。LicenseManager.UsageMode
的值是否为LicenseUsageMode.Designtime
(请参阅我的答案以获取有关从控件的构造函数检测设计模式的更多详细信息)。请注意,这在构造函数中可以工作。在你的函数调用外包裹任何这些检查都应该解决你的问题。