天天看點

[原]關于在Python和C#之間消息傳遞的問題

本文介紹了使用Python和C#程式設計時借助Json字元串進行消息傳遞,并給出了兩種不同的實作方式。

問題的描述:

鑒于Python強大的網絡功能和豐富的開源元件和C#開發Windows Form程式時優秀的架構,使用Python和C#混合程式設計可以有效的結合二者的長處,快速開發産品。

然而在這兩者之間如何進行消息/資料的傳遞便成為一個首要的問題。

解決思路:

想在這兩者之間友善進行對象轉換Json是個首選的技術(關于Json的介紹就不複述了,可以參考文獻[1])。既然標明了使用Json作為消息傳遞的格式,我們可以有兩種方案處理這個問題:

一、通過中間檔案傳遞Json字元串

在Python中将需要傳遞到C#的對象組裝成清單,轉換為Json字元串,将該字元串寫入檔案,然後再在C#端将該檔案讀出來,反序列化為對象清單即可。

話不多說,直接上代碼:

Python端代碼:

[原]關于在Python和C#之間消息傳遞的問題

注:這裡隻貼了核心代碼。至于如何将自定義Python轉換為Json字元串可以參考文獻[2]。

C#端代碼:

[原]關于在Python和C#之間消息傳遞的問題

二、通過傳回值傳遞Json字元串

在Python端将對象清單轉換成的Json字元串直接傳回,在C#端直接捕獲該傳回值,然後反序列化為對象清單,代碼如下:

Python端

[原]關于在Python和C#之間消息傳遞的問題

C#端

[原]關于在Python和C#之間消息傳遞的問題

這種方式省略了對中間檔案的讀寫操作,較少了程式運作的時空開銷。

參考文獻:

【1】介紹Json http://www.json.org/json-zh.html

【2】使用Json作為Python和C#混合程式設計時對象轉換的中間檔案 http://www.cnblogs.com/chaosimple/p/4035693.html

【3】Best way to return a value from a Python script http://stackoverflow.com/questions/18231415/best-way-to-return-a-value-from-a-python-script