.NET应用程序设置->;设置空字符串
我应该在app.config的applicationSettings部分键入什么(在这两种情况下),以便在阅读设置时可以获得以下内容:.NET应用程序设置->;设置空字符串,.net,string,null,settings,.net,String,Null,Settings,我应该在app.config的applicationSettings部分键入什么(在这两种情况下),以便在阅读设置时可以获得以下内容: Settings.Default.FooString==null Settings.Default.FooString==string.Empty ?? 我想这两种情况都无法实现,还是我遗漏了什么 不幸的是,需要区分字符串值是null还是空,因为该值将传递给不同的系统,该系统对这两个值做出不同的决定。 谢谢 进一步资料: 每次修改“设置”选项卡时,都会重新生成
进一步资料: 每次修改“设置”选项卡时,都会重新生成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)]手动更正它时,它可以正常工作,但是,每当我修改设置选项卡上的任何内容时,我都需要这样做,这是不可接受的
有什么线索吗?如果要空,请保留未定义的应用设置,如果要字符串,请使用value=“”。空你是对的,这两种情况都无法实现,因为
null!=String.Empty
但是您可以使用
布尔字符串.IsNullOrEmpty(String)
来检查这两种情况。对于null
,您只需省略整个
元素
对于
字符串.Empty
您使用
或
它不相关,很抱歉。。。我认为这是相同的原则。与上面的答案相同,你在applicationsettings@Łukasz Podolak中没有任何元素-我猜@matt dot net和我认为你指的是appSettings
元素。答案已更新。如果省略元素,则会得到System.Configuration.ConfigurationErrorsException:未找到必需的属性“value”。