2009-06-03 13 views
12

En el mundo .NET, el marshalling significa simplemente la preparación de un objeto/datos para la transferencia a través de un límite o sobre un cable O significa la preparación y la transferencia a través de un límite o sobre un cableDefinición precisa del término 'marshalling'

Y qué significa ordenar una llamada. ¿Significa simplemente el empaquetado de la llamada de "transferencia" sobre un límite de contexto o es el embalaje y el envío (es decir, la invocación) de la llamada?

Lo siento por ser un Stickler ...

Clarry

+0

No utilice 'dotnot' como una etiqueta –

Respuesta

1

Como he entendido que es la preparación de los datos, no la transferencia. Aún así, no es raro usar el término para incluir también la transferencia (también soy culpable de hacer esto).

2

En mi opinión, ordenar referencias se refiere al acto de tomar un objeto o datos, prepararlo para su uso en un contexto no nativo y luego presentarlo a ese contexto extranjero.

Pienso en ello en términos de los datos u objetos que se "marcan" en un entorno en el que no está familiarizado. Esto puede implicar una codificación diferente, un envoltorio, etc., y la forma en que se transfiere un objeto es una parte importante del proceso de clasificación.

Hasta que los datos u objetos no se hayan presentado a su nuevo contexto, no lo considero ordenado. En ese momento, acaba de ser convertido, encriptado, envuelto o lo que sea.

Como ejemplo, JSON se usa a menudo para transferir un objeto o datos de un proceso a otro. Cuando conviertes a JSON, considero que es una transformación de una estructura de datos a otra. Una vez que se transfiere por el cable, ENTONCES se está calculando.

Por lo tanto, no hay cambio de contexto, no hay referencias.

Esa es mi granito de arena.

1

Creo que puede representar ambos escenarios.

  • Solo datos: Considere los escenarios de Invoke. Marshaling generalmente se usa para describir el acto de convertir datos del formato .Net en el formato C correspondiente.
  • Datos y llamadas: Considere las llamadas COM que cruzan apartamentos. En este caso, tanto los datos necesarios para la llamada como la llamada se consideran Marshaled ya que la llamada real debe cruzar los límites de los departamentos de COM. Me doy cuenta de que preguntaste esto en el contexto de .Net, pero creo que este es un ejemplo sólido que se puede relacionar con .Net. Considere por ejemplo el uso de ISynchronizedInvoke para ir entre hilos.
1

"Marshal" tiene varios significados, pero aparte de ser un título, significa. . .

mariscal - movilizar: prepara para acción o uso; "recursos mariscales"

Así que debería significar simplemente "empaquetar", no "empaquetar y enviar".

0

Marshalling es puramente cruzando una frontera

generalmente se usa para pasar objetos entre los 2 dominios de aplicación. La parte sobre el cable es algo opcional, pero el proceso de enviar el objeto a través del cable es, en primer lugar, la serialización del objeto hacia abajo, el envío es generalmente por algún otro protocolo (tcp/ip).

Cuestiones relacionadas