案例:我正在创建一个读取plc值的程序。为了读取这些值,将填充配置选项卡。此配置选项卡将所有值都放入一个数组列表中。如果程序关闭,它会丢失所有的配置数据,我想做一个功能来保存这个配置数据。我对这些事情完全陌生,如果你们可能有答案和/或示例代码,我很好奇。我正在考虑存储完整的数组列表,并且当我打开这个.whatever文件时读出来。保存值供以后使用
正如你可能看到的,ive已经创建了一个菜单。
Arraylist name = allData。
ArrayList在一个名为DataPerLabel的对象中接受这些数据。
配置选项卡:
类DataPerLabel:
class DataPerLabel
{
public String labelName;
public String labelAdress;
public String dataType;
public bool monitor;
public DataPerLabel(String labelName, String labelAdress, String dataType, bool monitor)
{
this.labelName = labelName;
this.labelAdress = labelAdress;
this.dataType = dataType;
this.monitor = monitor;
}
public String getLabelName()
{
return labelName;
}
public String getLabelAdress()
{
return labelAdress;
}
public String getDataType()
{
return dataType;
}
public bool getMonitor()
{
return monitor;
}
}
我想这个数组列表存储在一个.ini或.txt FIL
现在我已经试过这:
private void menuItemSave_Click(object sender, System.EventArgs e)
{
string yourFilePath = @"C:\\Users\\Gebruiker\\Desktop\\WindowsHMI\\";
XmlSerializer serializer = new XmlSerializer(typeof(DataPerLabel));
foreach (DataPerLabel configRecord in allData)
{
using (XmlWriter writer = XmlWriter.Create(yourFilePath, new XmlWriterSettings() { Indent = true }))
{
serializer.Serialize(writer, configRecord);
}
}
}
给我错误:序列化不可能在allDataPerLabel上,因为它没有没有参数的构造函数。
希望有人能帮助,
感谢
你应该看看保存文件到的app.config或用户配置文件使用[ConfigurationManager](https://msdn.microsoft.com/de-de/library/system.configuration.configurationmanager(v = vs.110).aspx) –
让我看看,因为我说im完全新和学生,所以,无论如何,谢谢! – NielsSchutte
将整个数组列表存储在文件中很容易使用序列化完成,并在启动时使用反序列化重新加载。但我宁愿使用@MarkusDeibel建议将数据存储在配置文件中。如果配置选项卡中的数据对于每个用户都不相同,那么我会将这些数据存储为用户设置,如果这些数据对于我将它们存储在配置文件中的每个用户都是相同的话。 – elloco999