【问题标题】:Serialize Generic Class List into a Byte Array [duplicate]将通用类列表序列化为字节数组[重复]
【发布时间】: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();
    }
}

【问题讨论】:

标签: c# serialization


【解决方案1】:

你可以这样做:

void Main()
{
    List<CustomerData> customerdata = new List<CustomerData>();

    /*
    ...Your logic...
    ...Add Customers to List...
    */

    var binaryFormatter = new BinaryFormatter();
    var memoryStream = new MemoryStream();
    binaryFormatter.Serialize(memoryStream, customerdata);
    var result = memoryStream.ToArray();
}

[Serializable]
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; }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 2013-04-29
    相关资源
    最近更新 更多