请帮忙,为了我的不拔头发...
以下代码行:
this._connectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;
给我带来了无数的悲伤。
它位于用户控件中,当前处于控件的Loaded事件中,但我也尝试了构造函数,只是在声明字段时将字段初始化为值。每当我这样做时,WPF设计师就会在使用所述用户控件的任何屏幕上进行调整。
代码本身编译良好,运行没有问题。但它正在变成一种真正阻碍发展而根本无法使用设计师。有没有人有任何线索可能导致这种情况以及暗示将来避免它的良好做法?我怀疑它与尝试访问ConfigurationManager有关,但我无法弄清楚该行的位置使其停止。
感谢。
PS:Visual Studio 2010 Premium
答案 0 :(得分:1)
设计人员可能不是在查看应用程序的配置,而是查看其当前主机应用程序(VS)的配置,因此ConfigurationManager.ConnectionStrings [“SqlConnectionString”]在设计时返回null。
答案 1 :(得分:1)
当你在设计时工作时,你应该避免加载它。使用其他适当的默认值填写值,而不是:
if (DesignerProperties.GetIsInDesignMode(this))
this._connectionString = "Default";
else
{
this._connectionString = ConfigurationManager
.ConnectionStrings["SqlConnectionString"]
.ConnectionString;
}
答案 2 :(得分:0)
此限制类似于MVC应用程序中的内容,即Web.Config在设计时未实例化。 Lo ... WPF做同样的事情,即App.Config在设计时不存在。