0

所以我在 dotPeek 中查看 Solar 2,我注意到保存的游戏文件是原始序列化类的格式。有谁知道可以读取这种格式并对其进行编辑的程序(最好是免费的)?

4

3 回答 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

试试SharpSerializer

希望这对你有用。

于 2013-05-05T23:28:16.517 回答