我需要序列化headers
对象以字符串格式存储它,可能是base64。将Dictionary<String, Object>
只有 String 或 Int 值,所以应该没有问题。
Dictionary<String, Object> headers = RequestHeaders.ProcessHeaders(HttpContext.Current);
此外,当然重点是能够将 base64 字符串反序列化回 Dictionary。
我需要序列化headers
对象以字符串格式存储它,可能是base64。将Dictionary<String, Object>
只有 String 或 Int 值,所以应该没有问题。
Dictionary<String, Object> headers = RequestHeaders.ProcessHeaders(HttpContext.Current);
此外,当然重点是能够将 base64 字符串反序列化回 Dictionary。
您不能将 a 序列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);
首先我可以澄清一下,您不能从 Dictionary 序列化到 Base64,因为 Dictionary 是一种结构,Base64 是一种编码格式。
您需要从 Dictionary 序列化为 XML(.NET 不支持,但您可以为此构建自己的序列化器/反序列化器,或使用第 3 方序列化器),或 JSON,甚至二进制(如果不需要人类可读)。然后,您可以将序列化的结果编码为 Base64。
ASP.NET ViewStates 的工作方式与此类似(但我不认为 ViewState 是字典),但它是一种先序列化然后进行 Base64 编码的结构。