C# 如何将字典序列化为base64
我需要序列化C# 如何将字典序列化为base64,c#,C#,我需要序列化headers对象,以字符串格式(可能是base64)存储它。 字典将只包含字符串或Int值,因此应该没有问题 Dictionary<String, Object> headers = RequestHeaders.ProcessHeaders(HttpContext.Current); Dictionary headers=RequestHeaders.ProcessHeaders(HttpContext.Current); 当然,关键是能够将base64字符串
headers
对象,以字符串格式(可能是base64)存储它。
字典
将只包含字符串或Int值,因此应该没有问题
Dictionary<String, Object> headers = RequestHeaders.ProcessHeaders(HttpContext.Current);
Dictionary headers=RequestHeaders.ProcessHeaders(HttpContext.Current);
当然,关键是能够将base64字符串反序列化回Dictionary。您不能将
字典
序列化为XML,但可以将其序列化为JSON:
string json = JsonConvert.SerializeObject(dictionary, Formatting.None);
byte[] bytes = Encoding.UTF8.GetBytes(json);
string base64String = Convert.ToBase64String(bytes);`
要反序列化:
byte[] bytes = Convert.FromBase64String(base64String);
string json = Encoding.UTF8.GetString(bytes);
Dictionary<string, object> deserializedDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
byte[]bytes=Convert.FromBase64String(base64String);
string json=Encoding.UTF8.GetString(字节);
Dictionary deserializedDict=JsonConvert.DeserializeObject(json);
您不能将字典
序列化为XML,但可以将其序列化为JSON:
string json = JsonConvert.SerializeObject(dictionary, Formatting.None);
byte[] bytes = Encoding.UTF8.GetBytes(json);
string base64String = Convert.ToBase64String(bytes);`
要反序列化:
byte[] bytes = Convert.FromBase64String(base64String);
string json = Encoding.UTF8.GetString(bytes);
Dictionary<string, object> deserializedDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
byte[]bytes=Convert.FromBase64String(base64String);
string json=Encoding.UTF8.GetString(字节);
Dictionary deserializedDict=JsonConvert.DeserializeObject(json);
首先,我要澄清的是,您不能从Dictionary序列化到Base64,因为Dictionary是一种结构,Base64是一种编码格式
您需要从字典序列化为XML(不受.NET支持,但您可以为此构建自己的序列化程序/反序列化程序,或者使用第三方序列化程序),或者JSON,甚至二进制(如果不需要人类可读)。然后,可以将序列化的结果编码为Base64
ASP.NET ViewState的工作原理与此类似(但我不认为ViewState是一个字典),但它是一个序列化然后进行Base64编码的结构 首先我要澄清的是,您不能从Dictionary序列化到Base64,因为Dictionary是一种结构,Base64是一种编码格式 您需要从字典序列化为XML(不受.NET支持,但您可以为此构建自己的序列化程序/反序列化程序,或者使用第三方序列化程序),或者JSON,甚至二进制(如果不需要人类可读)。然后,可以将序列化的结果编码为Base64
ASP.NET ViewState的工作原理与此类似(但我不认为ViewState是一个字典),但它是一个序列化然后进行Base64编码的结构 我在哪里写的我想序列化为XML?当然,重点是能够将base64字符串反序列化回Dictionary。没有,但这是一个非常常见的问题,我认为值得一提。是否有任何特定的格式要序列化到?谢谢!这是一个非常好的答案,不知道为什么其他用户说这不能做到。@user1662812,大多数人认为只要你说“Serialize”,你就需要XML格式的数据。如前所述,.NET不支持将字典序列化为现成的XML,因此他们说这是无法做到的…如果您对它应用足够的知识,任何事情都可以做到!我在哪里写的我想序列化为XML?当然,重点是能够将base64字符串反序列化回Dictionary。没有,但这是一个非常常见的问题,我认为值得一提。是否有任何特定的格式要序列化到?谢谢!这是一个非常好的答案,不知道为什么其他用户说这不能做到。@user1662812,大多数人认为只要你说“Serialize”,你就需要XML格式的数据。如前所述,.NET不支持将字典序列化为现成的XML,因此他们说这是无法做到的…如果您对它应用足够的知识,任何事情都可以做到!