如何将字节数组转换为任何类型

好吧伙计们,我看到有人询问如何将字节数组转换为intstringStream等等的问题……而且答案都各不相同,我个人没有找到任何满意的答案。

所以这里有一些我们想要将字节数组转换为的类型。

UnityEngine.Font可以接收ttf数据。

UnityEngine.Testure2D ,它可以从图像文件中获取数据,如.png.jpg等…

我们如何将字节数组转换为StringUnityEngine.Testure2D,UnityEngine.FontBitmap等…

填充字节数组的数据必须来自一个文件类型,其数据可以通过我们要将字节数组转换为的类型来管理?

这目前可能吗?

任何帮助,将不胜感激。

原始类型很容易,因为它们具有定义的表示forms作为字节数组。 其他对象不是因为它们可能包含无法持久化的内容,例如文件句柄,对其他对象的引用等。

您可以尝试使用BinaryFormatter将对象持久化到字节数组:

 public byte[] ToByteArray(T obj) { if(obj == null) return null; BinaryFormatter bf = new BinaryFormatter(); using(MemoryStream ms = new MemoryStream()) { bf.Serialize(ms, obj); return ms.ToArray(); } } public T FromByteArray(byte[] data) { if(data == null) return default(T); BinaryFormatter bf = new BinaryFormatter(); using(MemoryStream ms = new MemoryStream(data)) { object obj = bf.Deserialize(ms); return (T)obj; } } 

但并非所有类型都可序列化。 例如,没有办法“存储”与数据库的连接。 您可以存储用于创建连接的信息(如连接字符串),但不能存储实际的连接对象。