2010-12-22 38 views
3

我有一些代碼在PHP,我試圖在C#中重做。 PHP代碼有類似fputs($ file,serialize($ val))什麼是C#相當於PHP序列化

什麼可能是網絡特別是C#相當於Serialize?

+0

請記住,您的類型及其所有屬性都應該增加Serializable屬性 – 2010-12-22 15:31:14

回答

0

.NET提供二進制或XML/SOAP序列化。見MSDN

4
using (Stream stream = File.Open(filePath, FileMode.Create)) 
{ 
    BinaryFormatter bformatter = new BinaryFormatter(); 
    bformatter.Serialize(stream, myObject); 
} 
+0

我使用了BinaryFormatter,但格式化的輸出與PHP輸出不同。既是函數格式到字節流,那麼爲什麼輸出不同? – xaria 2010-12-28 03:22:40

3

與.NET中的大多數事情一樣,根據您打算如何使用它,有很多方法可以實現。

方法,我可以在.NET BCL認爲:

  • 的XmlSerializer由扎克
  • 的BinaryFormatter作爲RedFilter指出,
  • WCF的DataContract XML/JSON序列
指出

我喜歡WCF DataContract序列化器,因爲我可以根據需要選擇XML或JSON,並且不需要標記我的類(.NET 3.5 SP1 +)以使基本序列化工作。我爲此寫了幾個幫助程序:http://will.hughesfamily.net.au/20090309/net-35-helper-methods-serialize-objects-to-xml/