我有一个字典如下:
public Dictionary<int, SpawnList> spawnEntities = new Dictionary<int, SpawnList>();
使用的课程如下:
public class SpawnList
{
public int NpcID { get; set; }
public string Name { get; set; }
public int Level { get; set; }
public int TitleID { get; set; }
public int StaticID { get; set; }
public entityType Status { get; set; }
public int TypeA { get; set; }
public int TypeB { get; set; }
public int TypeC { get; set; }
public int ZoneID { get; set; }
public int Heading { get; set; }
public float PosX { get; set; }
public float PosY { get; set; }
public float PosZ { get; set; }
}
/// <summary>Entity type enum.</summary>
public enum entityType
{
Ally,
Enemy,
SummonPet,
NPC,
Object,
Monster,
Gatherable,
Unknown
}
如何将此词典保存到 二进制或加密格式 所以我以后再装入它 我的申请?
我在这里遇到的最大问题不在于如何自行保存文件或对文件进行加密,而主要是关于如何在有课程时如何进行加密,以及如何在以后对其进行反序列化。
我的限制是.Net 3.5不能使用更高的任何东西。
答案 0 :(得分:3)
将序列化方面与加密方面分开。序列化数据的方法有多种:
所有这些都可能允许您对流进行序列化和反序列化。然后你应该看一下使用CryptoStream
来处理加密/解密 - 但要注意,如果你自己的代码需要能够在没有额外信息的情况下解密数据,那么它需要有密钥可用于它...这基本上意味着任何能够运行代码的人都可以使用它。
答案 1 :(得分:2)
将班级标记为
[Serializable]
并使用
将其序列化到任何StreamFileStream stream = File.Create("binary.bin");
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, spawnEntities);
stream.Flush();
stream.Close();
使用
对其进行反序列化stream = File.Open("binary.bin", FileMode.Open);
spawnEntities = formatter.Deserialize(stream) as Dictionary<int, SpawnList>;
stream.Close();
答案 2 :(得分:0)
让您入门的简单方法:
[Serializable]
属性CryptoStream
和BinaryFormatter
将其序列化为文件并加密数据。 CryptoStream
的引用提供了设置加密和执行相关文件处理的完整示例。