marshal
モジュールを使用して辞書をシリアル化するPythonサーバーがあります。そして、シリアル化されたメッセージをc#クライアントソケットに送信します。クライアント(c#)側でこのメッセージを逆シリアル化する方法。実行速度に問題があるため、IronPythonを使用できません。
または、PythonとC#の間で「メッセージ」をシリアル化/逆シリアル化する他の方法を知っていますか。
marshal
モジュールを使用して辞書をシリアル化するPythonサーバーがあります。そして、シリアル化されたメッセージをc#クライアントソケットに送信します。クライアント(c#)側でこのメッセージを逆シリアル化する方法。実行速度に問題があるため、IronPythonを使用できません。
または、PythonとC#の間で「メッセージ」をシリアル化/逆シリアル化する他の方法を知っていますか。
JSONはどうですか?C# の de-Python-pickle-er を作成したり、見つけたりすることもできますが、dict のようなものは JSON で簡単に表現できます。これは、ライブラリを信頼性が高く高速にシリアル化/逆シリアル化するためのよく知られた、明確に定義された標準です。ほぼすべての言語に存在します。もちろん XML もありますが、通常は JSON の方が扱いやすいです。
marshal
通常、Python 固有です。言語間のサポートが必要な場合は、json
代わりに使用する必要があります。
の代わりにmarshal
、「プロトコル バッファ」は Python と C# の両方で適切にサポートされています。Google は python 実装を提供しており、複数の c# 実装があります。プロトコル バッファは、優れたバージョニング サポート、豊富な種類のクロス プラットフォーム実装、およびバイナリ ソケットの高速使用に最適な非常に効率的なシリアライゼーションを提供します。