2013-05-05 61 views
0

所以我在看dotPeek中的Solar 2,我注意到保存的遊戲文件是原始序列化類的格式。有誰知道一個程序(最好是免費的),可以閱讀這種格式並編輯它?任何人都知道的.NET序列化類編輯器?

+0

.NET框架本身? http://msdn.microsoft.com/en-us/library/b85344hz.aspx(序列化格式可能並不包含任何有關原始對象結構的元數據,除了一些警衛以外,以檢查它是否發生了變化。) – millimoose 2013-05-05 23:17:05

+0

StackOverflow主要用於編程問題。通常「我在哪裏可以找到一個程序來做到這一點?」問題類型在本網站上是脫離主題的。 – 2013-05-06 01:39:56

回答

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; 
     } 
    } 
+0

'catch(Exception ex){throw ex; }'沒有理由殺死堆棧? – 2013-05-05 23:22:29

+0

你說得對,應該是Catch(){throw; }這個類一次有記錄,並且異常會被記錄下來。我把它移到了較低的層次上,沒有記錄,也沒有刪除catch(Exception)塊......感謝評論。 – 2013-05-05 23:25:29

1

如果您有原始應用程序的DLL,只是參考他們使用任何解串器它使用反序列化到其類。

如果您沒有原始類,並且它使用的是BinaryFormatter,則必須根據規範在[MS-NRBF]: .NET Remoting: Binary Format Data Structure處實施二進制讀取器。

相關問題