【发布时间】:2010-12-22 15:21:36
【问题描述】:
我在 PHp 中有一些代码,我正在尝试在 C# 中重做这些代码。 PHP 代码有类似 fputs($file,serialize($val))
什么是 dot NET 特别是 C# 等价于 Serialize?
【问题讨论】:
-
记住你的类型和它的所有属性都应该被 Serializable Attrbite 扩充
标签: c# php serialization
我在 PHp 中有一些代码,我正在尝试在 C# 中重做这些代码。 PHP 代码有类似 fputs($file,serialize($val))
什么是 dot NET 特别是 C# 等价于 Serialize?
【问题讨论】:
标签: c# php serialization
using (Stream stream = File.Open(filePath, FileMode.Create))
{
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, myObject);
}
【讨论】:
与 .NET 中的大多数东西一样,有很多方法可以实现,具体取决于您计划如何使用它。
我能在 .NET BCL 中想到的方式:
我通常喜欢 WCF DataContract 序列化器,因为我可以根据需要选择 XML 或 JSON,而且我不需要标记我的类 (.NET 3.5 SP1+) 来进行基本的序列化工作。为此我写了几个助手:http://will.hughesfamily.net.au/20090309/net-35-helper-methods-serialize-objects-to-xml/
【讨论】:
将serialize 调用从vBulletin 移植到C# 时,Sharp Serialization Library 为我工作。但是在serialize 方法中,我不得不将StringEncoding.GetByteCount(str) 替换为str.Length,因为StringEncoding.GetByteCount 给了我长度+ 1,这导致使用PHP 进行反序列化时出现问题。所以整行应该是
return sb.Append("s:" + str.Length + ":\"" + str + "\";");
【讨论】:
.NET 提供二进制或 XML/SOAP 序列化。见MSDN。
【讨论】: