2009-05-10 6 views
0

Letzte Woche fragte mich ein junger Student, ob das Marshalling das gleiche wie Casting sei. Meine Antwort war definitiv nein. Marshalling ist Seralisierung, die Möglichkeit, eine Speicherdarstellung eines Objekts in Bytes zu transformieren, um sie an ein Netzwerk zu übertragen, während das Casting mit Typkonvertierung/-zwang verbunden ist.Marshalling und Casting. Sind sie verwandt?

Später dachte ich über die Frage nach, dass das Marshalling als Sonderfall des Castings angesehen werden kann. Zum Beispiel ist die Umwandlung der Speicherrepräsentation in xml, dann kann man sagen, dass Sie in den Typ "casting" gehen, der durch die entsprechende xsd-Grammatik dieser xml-Datei definiert wird.

Was denken Sie darüber?

Antwort

2

Durch Casting wird der Datentyp nicht geändert. Das ist ein großer Unterschied. Wenn Sie etwas marshallen, verwandeln Sie die Daten in etwas anderes.

Eine einfache Umwandlung ändert nur, wie Sie das Objekt interpretieren, nicht was das Objekt intern ist.

Ich stimme zu, dass die Unterscheidung klar sein sollte, sonst können unbekannte Menschen verwirrt werden.

+0

Aber bedeutet das auch, dass Casting eine Art Marshalling ist, eine, die den geringsten Aufwand für das Marshalling erfordert? Oder Casting nur nicht Marshalling, weil das Marshalling eine Typkonvertierung erfordert. Würde das bedeuten, dass eine Klasse (z. B. eine HTML-Dokumentklasse) in eine andere Klasse (z. B. eine Baumklasse) umgewandelt wird? JSON zu XML? XML zu JSON? Text in XML oder JSON mit einem intelligenten Deduktionsalgorithmus? – Dmitry

0

Beim Marshalling geht es im Allgemeinen um eine Technologiegrenze (z. B. über ein Netzwerk oder von einem Speichertyp zu Managed/Unmanaged), während Casting im Allgemeinen innerhalb derselben Technologiegrenze liegt .

Es wäre außergewöhnlich verwirrend, wenn wir den gleichen Begriff für beide Ansätze verwenden würden, was bedeutet, dass wir sie anders definieren müssen, da sie unterschiedliche Verhaltensweisen haben.

-1

Sie sind beide eine "Typkonvertierung", aber sie sind verschiedene Arten der Typkonvertierung: Casting ist in der Regel zwischen verwandten Objekttypen (z. B. ein Downcast von einer Oberklasse zu einer Unterklasse), während ein Marshalling zum Beispiel sein könnte von einem Objektdiagramm zu einer Klartextdarstellung.