c# - 如何在应用程序设置中存储 int[] 数组

标签 c# winforms arrays settings

我正在使用 C# express 2008 创建一个简单的 Windows 窗体应用程序。我是一名经验丰富的 C++ 开发人员,但我对 C# 和 .NET 几乎是全新的。

我目前正在使用设置设计器和如下代码存储我的一些简单应用程序设置:

// Store setting  
Properties.Settings.Default.TargetLocation = txtLocation.Text;  
...  
// Restore setting  
txtLocation.Text = Properties.Settings.Default.TargetLocation;  

现在我想存储一个整数数组 ( int[] ),或者可能是一个整数列表 ( List< int > ) 作为设置。但是,我不知道该怎么做。我已经搜索了文档、stackoverflow 和谷歌,但找不到关于如何执行此操作的合适解释。

根据我发现的稀疏示例,我的预感是我必须创建一个可序列化的类来包装我的数组或列表,然后我才能在设置设计器中使用该类型。但是,我不确定具体如何执行此操作。

最佳答案

还有另一种解决方案 - 需要对设置文件进行一些手动编辑,但之后在 VS 环境和代码中工作正常。并且不需要额外的功能或包装器。

问题是,VS 允许在设置文件中默认序列化 int[] 类型 - 它只是不允许您默认选择它。 因此,创建一个具有所需名称的设置(例如 SomeTestSetting)并使其成为任何类型(例如 string 默认情况下)。 保存更改。

现在转到您的项目文件夹并使用文本编辑器(例如记事本)打开“Properties\Settings.settings”文件,或者您可以在 VS 中通过右键单击解决方案资源管理器中的“-> 属性->”来打开它Settings.settings”,选择“打开方式...”,然后选择“XML 编辑器”或“源代码(文本)编辑器”。 在打开的 xml 设置中找到您的设置(看起来像这样):

<Setting Name="SomeTestSetting" Type="System.String" Scope="User">
  <Value Profile="(Default)" />
</Setting>

将“类型”参数从 System.String 更改为 System.Int32[]。现在这部分看起来像这样:

<Setting Name="SomeTestSetting" Type="System.Int32[]" Scope="User">
  <Value Profile="(Default)" />
</Setting>

现在保存更改并重新打开项目设置 - 瞧! - 我们有类型为 System.Int32[] 的设置 SomeTestSetting,可以通过 VS 设置设计器(也包括值)以及在代码中访问和编辑它。

关于c# - 如何在应用程序设置中存储 int[] 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7885898/

相关文章:

c# 删除动态创建的对象

c# - 没有异常的错误处理

c# - 关闭框触发非模态表单的验证

java - 什么是NumberFormatException,我该如何解决?

C函数指针既不是函数也不是指针

c# - 将数组复制到数组

c# - 带有 Html.EditorFor 的表格

c# - 在 C# 中使用 OleDb 将数据插入 Excel 2007

c# - NUnit Assert.IsInstanceOf<T> - 无法确保不是派生类?

c - c 中的段错误(核心转储)(将文本发送到数组)