什么是PHP序列化的C#等价物

时间:2010-12-22 15:21:36

标签: c# php serialization

我在PHp中有一些代码,我试图在C#中重做。 PHP代码类似于fputs($ file,serialize($ val))

什么是dot NET特别是C#相当于Serialize ???

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

与.NET中的大多数内容一样,根据您计划如何使用它,有很多方法可以实现。

我在.NET BCL中可以想到的方式:

  • Zach指出的XmlSerializer
  • RedFilter指出BinaryFormatter,
  • WCF的DataContract XML / JSON Serializer

我喜欢WCF DataContract Serializer,因为我可以根据需要选择XML或JSON,而且我不需要标记我的类(.NET 3.5 SP1 +)来进行基本的序列化工作。为此目的,我写了几个助手:http://will.hughesfamily.net.au/20090309/net-35-helper-methods-serialize-objects-to-xml/

答案 2 :(得分:0)

.NET提供二进制或XML / SOAP序列化。请参阅MSDN

答案 3 :(得分:0)

Sharp Serialization Library调用从vBulletin移植到C#时,serialize为我工作。但是在serialize方法中,我不得不用StringEncoding.GetByteCount(str)替换str.Length,因为StringEncoding.GetByteCount给了我长度+ 1,这在使用PHP进行反序列化时引起了问题。所以整行应该是

return sb.Append("s:" + str.Length + ":\"" + str + "\";");