所以我在 dotPeek 中查看 Solar 2,我注意到保存的游戏文件是原始序列化类的格式。有谁知道可以读取这种格式并对其进行编辑的程序(最好是免费的)?
问问题
326 次
3 回答
1
如果您有原始应用程序 dll,只需引用它们并使用它使用的任何反序列化器反序列化到它的类中。
如果您没有原始类并且它正在使用BinaryFormatter
,则必须根据[MS-NRBF] 中的规范实现二进制阅读器:.NET Remoting: Binary Format Data Structure。
于 2013-05-05T23:25:51.473 回答
0
好吧,您可以尝试查看它们是普通的 [Serializable] 对象并使用下面的代码,但是,如果有自定义序列化程序,那么您将需要获取其语义。
public static class Serializer
{
//--------------------------------------------------------------------------------------------
/// <summary>
/// Serializes the object to an XML string.
/// </summary>
/// <param name="anObject">An object.</param>
/// <returns></returns>
public static string SerializeObject(object anObject)
{
try
{
XmlSerializer serializer = new XmlSerializer(anObject.GetType());
System.IO.MemoryStream aMemStr = new System.IO.MemoryStream();
System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(aMemStr, null);
serializer.Serialize(writer, anObject);
string strXml = System.Text.Encoding.UTF8.GetString(aMemStr.ToArray());
return strXml;
}
catch (Exception ex)
{
throw ex;
}
}
//--------------------------------------------------------------------------------------------
public static object DeSerializeObject(Type objectType, string aString)
{
object obj = null;
try
{
XmlSerializer xs = new XmlSerializer(objectType);
obj = xs.Deserialize(new StringReader(aString));
}
catch (Exception ex)
{
throw ex;
}
return obj;
}
}
于 2013-05-05T23:17:31.280 回答
0
希望这对你有用。
于 2013-05-05T23:28:16.517 回答