.NET应用程序设置 - >设置空字符串

时间:2010-07-04 19:10:02

标签: .net string null settings

我应该在app.config的applicationSettings部分输入什么内容(在两种情况下),以便在阅读“设置”时,我可以获得以下内容:

  1. Settings.Default.FooString == null
  2. Settings.Default.FooString == string.Empty
  3. ? 我想没有办法实现这两种情况,或者我错过了什么?

    遗憾的是,需要区分字符串值是空还是空,因为这个值会转到不同的系统,这会对这两个系统做出不同的决定。 感谢


    进一步信息:

    每次修改设置选项卡时都会重新生成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)]手动修正它时,它可以正常工作,但是,每当我修改设置选项卡上的任何内容时,我都需要这样做,这是不可接受的。

    任何线索?

3 个答案:

答案 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>