2

我正在尝试在我的 Windows 窗体应用程序中使用 C# 中的新设置文件。

在我删除了旧的设置文件(Settings1.settings)并创建了新的(Settings.settings)之后。

当我开始编辑使用设置文件的代码时,我意识到无法识别新的设置文件。例子:

在此处输入图像描述

我们公司创建的命名空间中使用了一个自定义设置类,这导致了一些冲突。如何将代码指向正确的设置文件?

4

3 回答 3

4

在尝试复制您所做的事情时,我注意到 Settings.Designer.cs 文件的命名空间来自此(我正在使用控制台应用程序进行测试)。

namespace ConsoleApplication1.Properties {


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

        public static Settings Default {
            get {
                return defaultInstance;
            }
        }

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

namespace ConsoleApplication1 {


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

        public static Settings Default {
            get {
                return defaultInstance;
            }
        }

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

如果您会注意到命名空间从 ConsoleApplication1.Properties 转到 ConsoleApplication1,那么如果您将 .Properties 添加到新设置文件的命名空间,它应该会解决您的问题。

于 2012-06-20T00:40:53.087 回答
1

检查设置文件的命名空间,然后您有 2 个选项:

  1. 在 .cs 文件的开头添加 using 到此命名空间。

  2. 每次尝试使用设置文件之前,请编写它的整个命名空间。

于 2012-06-19T23:39:35.970 回答
0

我认识的派对迟到了。无论如何,我的解决方案是删除下面存储的设置

C:\Users\[username]\AppData\Local\[your program name]\

于 2017-09-28T20:49:19.447 回答