保存用户input以备后用C#

Howdee所有,

我有一个C#VSTO Excel加载项,我的组织使用它进行各种select以将数据导入到Excel中。 用户界面是一个窗体。 有一个下拉框,用于input带有可用参数的combobox,用户在那里selectinput来定义查询的参数。 我在列表框中显示参数,以便用户可以select他/她。 我有一个请求,可以保存参数input,以便用户可以快速回想,而不必一遍又一遍地input相同的信息,但不知道这样做的最佳方式。

基本上需要根据用户请求存储第一个下拉框和与列表框关联的参数。 正在创build一个文本文件,以保存到用户PC最好的方式去呢? 我想创build一个隐藏的标签,将它们存储在Excel中,但它只限于该文件。 我对C#比较新,所以不确定是否有更好的方式,我不知道。

干杯,瑞安

正如你所说的,你不想把它们限制在关联的文件中,我的方法可能是把它保存到用户的AppData文件夹中,并使用XML序列化。 你可以在下面看到一个例子。

数据将位于C:\ Users \ $ user $ \ AppData \ Roaming或… \ Local中,具体取决于您select的AppData文件夹。 看到这个更多的信息。

连载:

// this is just an example object, can do whatever you'd like here var myObject = new MyObject() { MyValue = "some data" }; string path = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyExcelAddIn\\data.xml"); Directory.CreateDirectory(Path.GetDirectoryName(path)); var serializer = new XmlSerializer(typeof(MyObject)); using (var fileStream = new FileStream(path, FileMode.Create)) { serializer.Serialize(fileStream, myobject); } 

反序列化:

 string path = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyExcelAddIn\\data.xml"); MyObject myObject; var serializer = new XmlSerializer(typeof(MyObject)); using (var fileStream = new FileStream(path, FileMode.Open)) { myObject = (MyObject)serializer.Deserialize(fileStream); } MessageBox.Show(myObject.MyValue);