一尘不染

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

c#

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

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

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

现在,我想将一个整数数组(int[])或一个整数列表(`List< int

`)存储为设置。但是,我不知道如何做到这一点。我已经搜索了文档,stackoverflow和google,但找不到关于如何执行此操作的详细说明。

基于发现的稀疏示例,我的直觉是我必须创建一个可序列化的类,该类可以包装我的数组或List,然后可以在设置设计器中使用该Type。但是,我不确定该怎么做。


阅读 221

收藏
2020-05-19

共1个答案

一尘不染

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

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

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

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

将“类型”参数从更改System.StringSystem.Int32[]。现在,本节将如下所示:

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

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

2020-05-19