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

发布于 2024-09-07 19:31:04 字数 921 浏览 2 评论 0原文

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

  1. Settings.Default.FooString == null
  2. Settings.Default.FooString == string.Empty

? 我想没有办法实现这两种情况,或者我错过了什么?

不幸的是,需要区分字符串值是空还是空,因为这个值进入不同的系统,对这两个系统做出不同的决定。 感谢


进一步的信息:

每次修改设置选项卡时都会重新生成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)] 手动更正它时,它会按照我想要的方式工作,但是,每当我修改设置选项卡上的任何内容时,我都需要执行此操作,这是不可接受的。

有什么线索吗?

What should I type (in both cases) in my app.config's applicationSettings section so that, when I read Settings, I can get the following:

  1. Settings.Default.FooString == null
  2. Settings.Default.FooString == string.Empty

?
I guess there is no way to achieve both situations, or am I missing something?

Diffrerenciating whether string value is null or empty is unfortunately required, because this value goes to different system, that takes diffrent decisions upon these two.
thanks


further info:

Settings.Designer.cs is being regenerated each time you modify the settings tab.
The sample generated setting is:

    [global::System.Configuration.UserScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Configuration.DefaultSettingValueAttribute("")]
    public string Foo {
        get {
            return ((string)(this["Foo "]));
        }
        set {
            this["Foo "] = value;
        }
    }

the problem is with generated [DefaultSettingValueAttribute("")]. It works as I want when I correct it by hand with [DefaultSettingValueAttribute(null)], however, I would need to do this after whenever I modify any thing on the settings tab, which is unacceptable.

any clues?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

放低过去 2024-09-14 19:31:04

对于 null,您只需省略整个 元素即可。

对于 string.Empty,您可以使用

For a null, you simply omit the whole <value /> element.

For a string.Empty you use <value /> or <value></value>.

作死小能手 2024-09-14 19:31:04

你是对的,没有办法同时实现这两种情况,因为 null != String.Empty

但是您可以使用 Boolean String.IsNullOrEmpty(String) 来检查这两种情况。

You're right, there is no way to achieve both situations, because null != String.Empty.

But you could use Boolean String.IsNullOrEmpty(String) to check for both situations.

绾颜 2024-09-14 19:31:04

如果您想要 null,请保留 appSetting 未定义;如果您想要 String.Empty,请使用 value=""

leave the appSetting undefined if you want null, use value="" if you want String.Empty

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文