我在PHp中有一些代码,我试图在C#中重做。 PHP代码类似于fputs($ file,serialize($ val))
什么是dot NET特别是C#相当于Serialize ???
答案 0 :(得分:4)
using (Stream stream = File.Open(filePath, FileMode.Create))
{
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, myObject);
}
答案 1 :(得分:3)
与.NET中的大多数内容一样,根据您计划如何使用它,有很多方法可以实现。
我在.NET BCL中可以想到的方式:
我喜欢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 + "\";");