【问题标题】:Block loading a static class in design mode in Visual Studio 2013在 Visual Studio 2013 的设计模式下阻止加载静态类
【发布时间】:2014-11-04 21:48:50
【问题描述】:

我在 VS2013 中的 C# 解决方案 (.Net 4.0) 包括一个定义静态类的项目。这个静态类的构造函数尝试连接到数据库并对数据进行一些操作。

我面临的问题是,每次我尝试构建我的解决方案或在其他项目中(在同一解决方案中)引用这个静态类时,VS2013 都试图调用静态类的构造函数。调用构造函数后,VS2013 没有响应。当然,作为临时解决方案,我可以注释构造函数的复杂部分,但最终我仍然必须取消注释并尝试构建。

你能告诉我如何在 VS2013 中关闭这个在设计模式下自动加载静态类的选项吗?尝试谷歌,但没有成功。

谢谢!

【问题讨论】:

  • 你不能。将涉及“静态”类型的代码添加到另一个方法并单独调用它,或者使用DesignMode 属性(如果可用)。
  • 使用singleton 而不是纯static 类正是针对这种情况。

标签: c# .net visual-studio


【解决方案1】:

您可以在静态构造函数中添加一个测试,并且仅当您不是 in design mode 时才执行您的代码逻辑。

话虽如此,我不建议您在静态构造函数中运行访问数据库的代码。主要问题是您并不真正知道 何时 它被调用。见http://www.yoda.arachsys.com/csharp/beforefieldinit.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多