将对象(或类)转换为byte []?
像System.IO.DriveInfo到byte []?
如果是这样的话。我怎么能不转换呢?答案 0 :(得分:1)
static void Main(string[] args)
{
using (var stream = new MemoryStream())
{
// serialize object
var formatter = new BinaryFormatter();
var foo = new Foo();
formatter.Serialize(stream, foo);
// get a byte array
// (thanks to Matt for more concise syntax)
var bytes = stream.GetBuffer();
// deserialize object
var foo2 = (Foo) formatter.Deserialize(stream);
}
}
[Serializable]
class Foo:ISerializable
{
public string data;
#region ISerializable Members
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("data",data);
}
#endregion
}
答案 1 :(得分:0)
如果类是Serializable,您可以使用BinaryFormatter来完成此操作。以下代码段可以为您提供一个开始:
http://www.digitalcoding.com/Code-Snippets/C-Sharp/C-Code-Snippet-Object-to-byte-array.html
答案 2 :(得分:0)
我认为你要找的术语是“序列化”
资源:
答案 3 :(得分:0)
您可以使用BinaryFormatter将对象序列化为MemoryStream,然后从中获取字节。 BinaryFormatter也可以从byte []数组转换回对象(反序列化)。但数据看起来很奇怪。如果那就是你想要的,它与记忆图像不同。