共用方式為


串行化服務

Microsoft RPC 支援編碼和譯碼數據的兩種方法,統稱為 串行化數據。 串行化表示數據會封送處理至您控制的緩衝區,並從您控制的緩衝區取消封送處理。 這不同於傳統 RPC 的使用方式,其中存根和 RPC 運行時間連結庫具有封送處理緩衝區的完整控制權,而且進程是透明的。 您可以將緩衝區用於永久媒體、加密等的記憶體。 當您將數據編碼時,RPC 存根會將數據封送處理至緩衝區,並將緩衝區傳遞給您。 當您譯碼數據時,您會提供封送處理緩衝區及其中的數據,並將數據從緩衝區取消封送處理至記憶體。 您可以依程式或類型進行串行化。

注意

開發人員通常會使用 挑選 一詞來描述串行化。 事實上,Windows SDK 範例包含名為 pickle 的目錄, 保留 RPC 串行化範例程式。

 

串行化會利用 RPC 機制來封送處理和取消封送處理其他用途的數據。 例如,應用程式可以藉由將數個不同類型的物件串行化為緩衝區,然後在單一作業中寫入整個緩衝區,來優化效能。 作串行化句柄的函式與您所使用的串行化類型無關。

另一個範例是,如果您需要使用 RPC 以外的網路傳輸機制,例如Microsoft Windows 套接字 (Winsock)。 透過 RPC 串行化,您的程式可以呼叫函式,以將您的數據封送處理到緩衝區,然後使用 Winsock 傳輸此資料。 當應用程式收到數據時,它可以使用 RPC 串行化機制,從 Winsock 例程所填入的緩衝區取消清理數據。 這提供 RPC 樣式應用程式的許多優點,同時,它可讓您使用非 RPC 傳輸機制。

您也可以將串行化用於與網路通訊無關的用途。 例如,一旦您使用 RPC 編碼函式將數據封送處理至緩衝區,就可以將它儲存在檔案中,以供另一個應用程式使用。 您也可以加密它。 您甚至可以使用它來儲存資料庫中與硬體和作系統無關的數據表示法。

下列主題將討論Microsoft RPC 支援的串行化服務: