私が理解しているマーシャリングは、さまざまな操作環境間で一貫した方法でデータを転送する方法を提供するということです。
マネージ コードからアンマネージ コードへのデータのマーシャリングのコンテキストでは、ほぼ同じです。
整数の配列や選択した任意のデータ型などのデータがあり、C++ コードで操作を行った後、C# コード内で使用できるようにしたいと考えています。
C# のコードに対して、「ここが配列です。やりたいことをやってください」とだけ言うことはできません。C++ の int の配列は、C# と同じ方法で格納できない場合があります。マーシャリングにより、このデータを環境に依存しない方法で送信して、どちらの側でもデータがまったく同じ方法で見えるようにします。
もう 1 つの例は、ネットワーキングです。通常、これをマーシャリングとは呼びませんが、ネットワーク経由で送信する場合は、通常、受信者がデータを解釈するのと同じ方法でデータを解釈するように送信する必要があります。あなたのコンピュータはリトル エンディアン順でデータを表し、もう一方のコンピュータはビッグ エンディアン順でデータを表すことができます。
tl;dr: マーシャリングは、さまざまな動作環境でデータを一貫して表現する方法を提供します