有人知道.NET序列化类编辑器吗?

时间:2013-05-05 23:10:46

标签: .net class serialization

所以我在dotPeek中查看Solar 2,我发现保存的游戏文件采用原始序列化类的格式。有没有人知道可以阅读这种格式并编辑它的程序(最好是免费的)?

3 个答案:

答案 0 :(得分:1)

如果你有原始的app dll,只需引用它们并使用它正在使用的任何反序列化器反序列化到它的类中。

如果您没有原始类且使用BinaryFormatter,则必须根据[MS-NRBF]: .NET Remoting: Binary Format Data Structure的规范实现二进制阅读器。

答案 1 :(得分: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;
        }
    }

答案 2 :(得分:0)

尝试SharpSerializer

希望这适合你。