【发布时间】:2018-09-25 01:11:27
【问题描述】:
如何将通用列表序列化为字节数组?
public class CustomerData
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public string CustomerState { get; set; }
public int ProductId { get; set; }
public int QuantityBought { get; set; }
}
List<CustomerData> customerdata = new List<CustomerData>();
我知道这是如何将一个简单的字符串序列化为 ByteArray。正在尝试学习如何对更复杂的列表和可枚举进行此操作。
// Input string.
const string input = "Test";
// Invoke GetBytes method.
byte[] array = Encoding.ASCII.GetBytes(input);
我看到了关于将对象转换为字节的技巧,但是我指的是通用列表类。
// Convert an object to a byte array
public static byte[] ObjectToByteArray(Object obj)
{
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
【问题讨论】:
-
选项很多。您可以使用 BinaryFormatter、JSON(然后将字符串序列化为字节)、protobuf、Microsoft.Bond、Hyperion 等等。太宽泛了。
标签: c# serialization