C#对象为byte []

时间:2014-08-19 12:39:07

标签: c# bytearray

是否知道转换特定对象的原因,让我们说Studentbyte[]

不包括Serialization / Deserialization

我想到的一种方法是首先创建它时从内存中提取它,但我相信这有点深远,我认为有一种更简单的方法。

我正在考虑尝试TypeConverter,但据我了解,它会尝试将其与byte[]匹配,而不会实际检索其byte[]等效内容。

任何输入都会有所帮助,我也看过google创建的序列化程序,但必须有一种内置的方式来获取对象的byte[]等价物。

欢迎任何确认或建设性批评。

3 个答案:

答案 0 :(得分:3)

你可以试试这个:

TypeConverter obj = TypeDescriptor.GetConverter(objectMessage.GetType());
byte[] bt = (byte[])obj.ConvertTo(objectMessage, typeof(byte[]));

答案 1 :(得分:-1)

下面是将对象转换为byte的代码。

var msg = Encoding.Default.GetBytes(System.Web.Helpers.Json.Encode(ObjectName));

答案 2 :(得分:-2)

使用BinaryFormatter

byte[] ToByteArray(Object obj)
{
    if(obj != null)       
    {
        using(var ms = new MemoryStream())
        {
           var bf = new BinaryFormatter()
           bf.Serialize(ms, obj);
           return ms.ToArray();
        }
    }

    return null;
}