c# - 如何将自定义类保存/序列化到设置文件?

标签 c# visual-studio settings

我有一个包含两个字符串的小类,如下所示:

    public class ReportType
    {
        private string displayName;
        public string DisplayName
        {
            get { return displayName; }
        }

        private string reportName;
        public string ReportName
        {
            get { return reportName; }
        }

        public ReportType(string displayName, string reportName)
        {
            this.displayName = displayName;
            this.reportName = reportName;
        }
    }

我想将此类的一个实例保存到我的设置文件中,以便我可以执行以下操作:

ReportType reportType = Settings.Default.SelectedReportType;

谷歌搜索似乎表明这是可能的,但似乎没有任何地方可供我遵循的明确指南。我知道需要进行一些序列化,但真的不知道从哪里开始。此外,当我进入 Visual Studio 中的“设置”屏幕并单击“类型”列下的“浏览”时,没有选项可以选择包含 ReportType 类的当前命名空间。

最佳答案

好的,我想我最终已经解决了。首先要做的是为需要序列化的ReportType类的每个属性添加如下属性,并从ApplicationSettingsBase继承该类:

    public class ReportType : ApplicationSettingsBase
    {
        private string displayName;
        [UserScopedSetting()]
        [SettingsSerializeAs(System.Configuration.SettingsSerializeAs.Xml)]
        public string DisplayName
        {
            get { return displayName; }
        }

................................

然后,一旦您重建了程序集(重要!),您可以进入设置屏幕并单击浏览,然后在底部的文本框中键入您的命名空间和类名(例如 Label_Creator.ReportType)。 namespace 和类名不会出现在树中,因此这部分不是很明显您需要做什么,这就是为什么它有点令人困惑....

关于c# - 如何将自定义类保存/序列化到设置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321248/

相关文章:

java - 如何重置 IntelliJ IDEA 设置?

c# - 传递到 Microsoft.Build.Framework.ITaskItem 的多个项目。使用 clickOnce 发布时

c# - Azure Linux ASP 上运行的 .net core 与 Azure SQL 数据库之间的连接池问题

c# - 这种循环依赖是一件坏事吗?有什么潜在的问题吗?

c# - 从 Wunderground 解析 JSON 预测数据

c# - 为什么 Office Interop 引用在 VS 2010 中显示错误

c# - .gitignore 和 Visual Studio 项目 : Ignore bin/Debug directory but not bin/Release directory

.net - 4.6.1 F# 应用程序抛出 FileNotFoundException : FSharp. 核心

ruby-on-rails - Rails 应用程序设置

.net - app.config 文件和 XYZ.settings 文件有什么区别?