当我尝试在我的代码中使用最近添加的应用程序设置时,我编写的WPF应用程序将不再编译。我可以在设置设计器和app配置中看到设置,如果我注释掉对设置的引用,我会编译。
新设置旨在存储一个日期,通知它何时显示气球提示(如果最小化)。看起来任何新添加的设置都会破坏构建,无论它是什么类型。
是否有一个步骤来添加我不知道的新设置?
这是它的样子:
//designer, pretty much the same as all the other declarations:
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.DateTime BaloonLastSeen {
get {
return ((global::System.DateTime)(this["BaloonLastSeen"]));
}
set {
this["BaloonLastSeen"] = value;
}
}
<!-- app.config: -->
<userSettings>
<MyNS.MyApp>
<setting name="WindowState" serializeAs="String">
<value>-1</value>
</setting>
<setting name="BaloonLastSeen" serializeAs="String">
<value />
</setting>
</MyNS.MyApp>
</userSettings>
//and finally, my attempt to use it in code-behind:
System.DateTime baloon = Properties.Settings.Default.BaloonLastSeen;
通过Properties.Settings.Default
调用其他属性工作正常,它只是最近添加的似乎正在绊倒。我已经尝试过清理和重建,甚至重新启动Visual Studio,但它似乎没有帮助。
另一条信息是,试图调用此属性会破坏智能感知。尝试构建失败后,在我重新启动之前,VS将不再检测类型或成员名称。
以下是编译器所说的错误:
Error 31 'MyNS.MyApp.Properties.Settings' does not contain a definition for 'BaloonLastSeen' and no extension method 'BaloonLastSeen' accepting a first argument of type 'MyNS.MyApp.Properties.Settings' could be found (are you missing a using directive or an assembly reference?)
我做了什么!?
答案 0 :(得分:0)
虽然我正在抓住稻草,但对我来说唯一看起来有点不合时宜的方面是app.config中的MyNS.MyApp标签,我认为它应该是MyNS.MyApp.Properties.Settings,例如
<!-- app.config: -->
<userSettings>
<MyNS.MyApp.Properties.Settings>
<setting name="WindowState" serializeAs="String">
<value>-1</value>
</setting>
<setting name="BaloonLastSeen" serializeAs="String">
<value />
</setting>
</MyNS.MyApp.Properties.Settings>
</userSettings>