Подтвердить что ты не робот

Точное определение термина "сортировка"

В мире .NET marshalling означает только подготовку объекта/данных для передачи по какой-либо границе или по проводу, или это означает подготовку и передачу по границе или по проводу.

И что означает маршал вызова. Означает ли это только упаковка вызова для "передачи" по границе контекста или это упаковка и отправка (то есть вызов) вызова?

Извините за то, что вы...

Кларри

4b9b3361

Ответ 1

В моем сознании маршалинг относится к акту взятия объекта или данных, подготовке его к использованию в неродном контексте и затем представлению его в этот внешний контекст.

Я думаю об этом с точки зрения того, что данные или объект "открываются" в среде, в которой он не знаком. Это может включать в себя различное кодирование, обертку и т.д., А также то, как передается объект, является важной частью процесса маршалинга.

Пока данные или объект не были представлены в его новом контексте, я не считаю его маршалированным. В этот момент он только что был преобразован, зашифрован, обернут или что-то еще.

В качестве примера JSON часто используется для переноса объекта или данных из одного процесса в другой. Когда вы конвертируете в JSON, я просто считаю, что преобразование из одной структуры данных в другую. Когда он передается по проводу, ТОГДА он маршалируется.

Итак, никакого изменения контекста, никакого маршалинга.

Что мои два цента.

Ответ 2

Как я понял, это подготовка данных, а не передача. Тем не менее это не редкость использовать этот термин для включения передачи (я также виноват в этом).

Ответ 3

Я думаю, что он может представлять оба сценария.

  • Только данные: рассмотрим сценарии PInvoke. Маршалинг обычно используется для описания акта преобразования данных из формата .Net в соответствующий формат C.
  • Данные и вызов: рассмотрите COM-вызовы, которые пересекают квартиры. В этом случае данные, необходимые для вызова и вызова, считаются маршализированными, так как фактический вызов должен пересекать границы COM-квартир. Я понимаю, вы спросили об этом в контексте .Net, но я считаю, что это хороший пример, который относится к .Net. Рассмотрим, например, используя ISynchronizedInvoke для перехода между потоками.

Ответ 4

"Маршал" имеет несколько значений, но, кроме того, что это название, это означает.,.

Маршал - мобилизуйте: готовьтесь к действие или использование; "ресурсы маршала"

Так что это просто означает "упаковать", а не "упаковать и отправить".

Ответ 5

Маршаллинг чисто по границе

Обычно используется для передачи объектов между 2 appDomains. Проводная часть является необязательной вещью, но процесс отправки объекта по проводу - это, во-первых, сериализация объекта вниз, отправка обычно осуществляется каким-то другим протоколом (tcp/ip).