对类进行序列化,然后返回状态
本文关键字:然后 返回 状态 序列化 | 更新日期: 2023-09-27 18:10:58
如果我有一个类,我把它设为Serializable,因为我想保存状态。我怎样才能恢复那种状态?
[Serializable]
public class MyObject
{
public int a = 5;
}
什么是[Serializable],什么时候我应该使用它?
如果你想在运行时更改和保存状态,使用带有Serializable属性的类是错误的选择。
我的猜测是,PlayerPrefs将是足够好的你正在寻找什么。你可以这样做:
public static string playerPrefKey_a = "a_value";
public static int a
{
get { return PlayerPrefs.GetInt(playerPrefKey_a); }
set { PlayerPrefs.SetInt(playerPrefKey_a, value); }
}
/// <summary>
/// (extension method) Deserializes a byte array into an object.
/// </summary>
public static T DeserializeToObject<T>(this byte[] buffer) where T : class
{
using (var stream = new MemoryStream(buffer))
{
var formatter = new BinaryFormatter();
stream.Seek(0, SeekOrigin.Begin);
return (T)formatter.Deserialize(stream);
}
}