要将自定义对象的集合存储到user.config文件中,您可以使用以下方法:
以下是一个简单的示例,演示如何将自定义对象的集合存储到user.config文件中:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
[Serializable]
public class CustomObject
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
// 创建自定义对象集合
List<CustomObject> objects = new List<CustomObject>
{
new CustomObject { Id = 1, Name = "Object 1" },
new CustomObject { Id = 2, Name = "Object 2" },
new CustomObject { Id = 3, Name = "Object 3" }
};
// 将对象集合序列化为字节数组
BinaryFormatter formatter = new BinaryFormatter();
using (MemoryStream stream = new MemoryStream())
{
formatter.Serialize(stream, objects);
byte[] serializedData = stream.ToArray();
// 将序列化的数据存储到user.config文件中
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["CustomObjects"].Value = Convert.ToBase64String(serializedData);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
// 从user.config文件中读取和反序列化对象集合
string serializedDataString = ConfigurationManager.AppSettings["CustomObjects"];
byte[] serializedData = Convert.FromBase64String(serializedDataString);
using (MemoryStream stream = new MemoryStream(serializedData))
{
List<CustomObject> deserializedObjects = formatter.Deserialize(stream) as List<CustomObject>;
// 输出反序列化后的对象集合
foreach (CustomObject obj in deserializedObjects)
{
Console.WriteLine($"Id: {obj.Id}, Name: {obj.Name}");
}
}
}
}
在这个示例中,我们首先创建了一个自定义对象的集合,然后将其序列化为字节数组,并将其存储到user.config文件中。然后,我们从配置文件中读取序列化的数据,并使用BinaryFormatter将其反序列化为自定义对象的集合。最后,我们输出反序列化后的对象集合。
请注意,这只是一个简单的示例,您可能需要根据您的具体需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云