2010-12-22 4 views
3

Ich habe einen Code in PHP, die ich versuche, in C# zu wiederholen. Der PHP-Code hat etwas wie fputs ($ file, serialize ($ val))Was ist die C# Entsprechung für PHP serialize

Was könnte der Punkt NET speziell C# Äquivalent von Serialize sein ???

+0

Denken Sie daran, dass Ihr Typ und alle seine Eigenschaften von Serializable Attrbite ergänzt werden sollte –

Antwort

0

.NET bietet entweder binäre oder XML/SOAP-Serialisierung. Siehe MSDN.

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

Ich BinaryFormatter verwendet, aber die formatierte Ausgabe ist nicht das gleiche wie PHP-Ausgabe. Sind beide Funktionsformate zu einem Bytestrom dann warum ist die Ausgabe anders? – xaria

+0

@xaria: Warum sollte es gleich sein? Eine russische und eine englische Übersetzung des gleichen Buches produzieren nicht die gleiche Ausgabe ... – RedFilter

+0

Ich denke @xaria möchte die gleiche Ausgabe wie PHP serialize() aus .NET-Code erzeugen. – saille

3

Wie bei den meisten Dingen in .NET gibt es viele Möglichkeiten, dorthin zu gelangen, je nachdem, wie Sie es verwenden möchten.

Ways ich denken kann in .NET BCL:

  • XmlSerializer wie von Zach wies darauf hin,
  • BinaryFormatter als Rotfilter weist darauf hin,
  • WCF Datacontract XML/JSON Serializer

Ich mag den WCF DataContract Serializer generell, weil ich je nach Bedarf entweder XML oder JSON auswählen kann, und ich muss meine Klassen (.NET 3.5 SP1 +) nicht markieren, um die grundlegende Serialisierung funktionieren zu lassen. Ich schrieb ein paar Helfer für diesen Zweck: http://will.hughesfamily.net.au/20090309/net-35-helper-methods-serialize-objects-to-xml/

Verwandte Themen