如何使用二进制序列化存储为字符串?

时间:2009-10-20 16:48:42

标签: c# .net serialization

基本上我希望使用二进制序列化将MyObject序列化为字符串。

这可能吗?如果是这样,怎么办?对于反序列化,从string到MyObject也是如此。

3 个答案:

答案 0 :(得分:2)

  

我想将MyObject序列化   使用二进制序列化的字符串

这有点矛盾,但您可以从(内存)流中获取字节并将其转换为文本。当然,你的字符串不会非常“可读”。如果您希望它能够往返,您必须仔细选择编码。

string text = Convert.ToBase64String(strm.ToArray());  // corrected

以后

byte[] binary = Convert.FromBase64String(text);
var strm2 = new System.IO.MemoryStream(binary);

答案 1 :(得分:2)

你可以在这里采取两种简单的方法,要么应该正常工作。

  1. 使用XmlSerializer将其序列化为XML,而不是序列化为二进制。

  2. 序列化为二进制并使用Convert.ToBase64String()和Convert.FromBase64String()方法转换为/从二进制/字符串格式。

答案 2 :(得分:0)

Xmlserializer不会序列化只读属性,还有其他限制。