gpt4 book ai didi

C# - 反序列化列表

转载 作者:可可西里 更新时间:2023-11-01 08:55:29 24 4
gpt4 key购买 nike

我可以很容易地序列化一个列表:

List<String> fieldsToNotCopy =new List<String> {"Iteration Path","Iteration ID"};
fieldsToNotCopy.SerializeObject("FieldsToNotMove.xml");

现在我需要这样的方法:

List<String> loadedList = new List<String();
loadedList.DeserializeObject("FieldsToNotMove.xml");

有这样的方法吗?或者我是否需要创建一个 XML 阅读器并以这种方式加载它?


编辑:原来没有内置的 SerialzeObject。我在我的项目的早期做了一个,然后忘了它。当我找到它时,我以为它是内置的。如果你好奇的话,这是我制作的 SerializeObject:

// Save an object out to the disk
public static void SerializeObject<T>(this T toSerialize, String filename)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
TextWriter textWriter = new StreamWriter(filename);

xmlSerializer.Serialize(textWriter, toSerialize);
textWriter.Close();
}

最佳答案

没有像 SerializeObject 这样的内置方法,但编写一个代码并不难。

public void SerializeObject(this List<string> list, string fileName) {
var serializer = new XmlSerializer(typeof(List<string>));
using ( var stream = File.OpenWrite(fileName)) {
serializer.Serialize(stream, list);
}
}

反序列化

public void Deserialize(this List<string> list, string fileName) {
var serializer = new XmlSerializer(typeof(List<string>));
using ( var stream = File.OpenRead(fileName) ){
var other = (List<string>)(serializer.Deserialize(stream));
list.Clear();
list.AddRange(other);
}
}

关于C# - 反序列化列表<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com