我应该在app.config的applicationSettings部分输入什么内容(在两种情况下),以便在阅读“设置”时,我可以获得以下内容:
? 我想没有办法实现这两种情况,或者我错过了什么?
遗憾的是,需要区分字符串值是空还是空,因为这个值会转到不同的系统,这会对这两个系统做出不同的决定。 感谢
进一步信息:
每次修改设置选项卡时都会重新生成Settings.Designer.cs。 样本生成设置为:
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string Foo {
get {
return ((string)(this["Foo "]));
}
set {
this["Foo "] = value;
}
}
问题在于生成[DefaultSettingValueAttribute(“”)]。当我使用[DefaultSettingValueAttribute(null)]手动修正它时,它可以正常工作,但是,每当我修改设置选项卡上的任何内容时,我都需要这样做,这是不可接受的。
任何线索?
答案 0 :(得分:3)
你是对的,没有办法实现这两种情况,因为null != String.Empty
。
但您可以使用Boolean String.IsNullOrEmpty(String)
来检查这两种情况。
答案 1 :(得分:2)
如果你想要null,请保持appSetting undefined,如果你想要String.Empty,请使用value =“”
答案 2 :(得分:2)
对于null
,您只需省略整个<value />
元素。
对于string.Empty
您使用<value />
或<value></value>
。