2009-06-03 6 views
12

In der .NET-Welt bedeutet Marshalling nur die Vorbereitung eines Objekts/Daten für die Übertragung über eine Grenze oder über einen Draht ODER bedeutet die Vorbereitung und Transfer über eine Grenze oder über einen Draht.Genaue Definition des Begriffs 'Marshalling'

Und was bedeutet, einen Aufruf zu marshalieren. Bedeutet es nur das Packen des Aufrufs für "Transfer" über eine Kontextgrenze oder ist es das Paketieren und Senden (d. H. Aufruf) des Aufrufs?

Es tut uns ist ein Pedant ...

Clarry

+0

Verwenden Sie 'dotnot' nicht als Tag –

Antwort

1

Wie ich es verstanden haben, es ist die Vorbereitung der Daten, nicht die Übertragung. Dennoch ist es nicht unüblich, den Begriff auch für die Übertragung zu verwenden (ich mache das auch).

2

In meinem Kopf bezieht sich Marshalling auf den Vorgang, ein Objekt oder Daten zu nehmen, es für die Verwendung in einem nicht-nativen Kontext vorzubereiten und es dann diesem fremden Kontext zu präsentieren.

Ich denke daran in Bezug auf die Daten oder das Objekt in einer Umgebung, in der es nicht vertraut ist "geführt" werden. Dies kann eine andere Codierung, einen Wrapper usw. beinhalten, und wie ein Objekt übertragen wird, ist ein wichtiger Teil des Marshalling-Prozesses.

Bis die Daten oder das Objekt tatsächlich zu seinem neuen Kontext präsentiert wurde, betrachte ich es nicht als Marshalling. Zu diesem Zeitpunkt wurde es gerade konvertiert, verschlüsselt, verpackt oder was auch immer.

Als Beispiel wird JSON oft verwendet, um ein Objekt oder Daten von einem Prozess zu einem anderen zu übertragen. Wenn Sie in JSON konvertieren, betrachte ich nur eine Umwandlung von einer Datenstruktur zu einer anderen. Sobald es über die Leitung übertragen wird, wird es dann gemarshallt.

Also keine Kontextänderung, kein Marshalling.

Das sind meine zwei Cent.

1

Ich denke, es kann beide Szenarien darstellen.

  • Nur Daten: Betrachten Sie PInvoke-Szenarien. Marshalling wird im Allgemeinen verwendet, um den Vorgang der Konvertierung von Daten aus dem .NET-Format in das entsprechende C-Format zu beschreiben.
  • Daten und Anruf: Betrachten Sie COM-Anrufe, die Wohnungen kreuzen. In diesem Fall werden sowohl die für den Anruf als auch den Anruf benötigten Daten als Marshalled betrachtet, da der tatsächliche Anruf die Grenzen von COM Apartments überschreiten muss. Ich weiß, dass Sie dies im Kontext von .Net gefragt haben, aber ich glaube, dass dies ein solides Beispiel ist, das mit .Net in Verbindung gebracht werden kann. Betrachten Sie beispielsweise ISynchronizedInvoke, um zwischen Threads zu wechseln.
1

"Marshal" hat mehrere Bedeutungen, aber abgesehen davon, dass es ein Titel ist, bedeutet es. . .

Marshal - mobilize: machen Sie sich bereit für Aktion oder Verwendung; "marschallressourcen"

So sollte es nur bedeuten "zu verpacken", nicht "zu verpacken und zu senden".

0

Rangierung ist rein accross einer Grenze

Normalerweise Objekte verwendet Pass zwischen 2 AppDomains. Der over-the-wire-Teil ist eine optionale Sache, aber der Prozess des Sendens des Objekts über den Draht ist zunächst die Serialisierung des Objekts, das Senden erfolgt normalerweise durch ein anderes Protokoll (tcp/ip).

Verwandte Themen