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


問題的描述:

鑒於Python強大的網絡功能和豐富的開源組件和C#開發Windows Form程序時優秀的框架,使用Python和C#混合編程可以有效的結合二者的長處,快速開發產品。

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

解決思路:

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

一、通過中間文件傳遞Json字符串

在Python中將需要傳遞到C#的對象組裝成列表,轉換為Json字符串,將該字符串寫入文件,然后再在C#端將該文件讀出來,反序列化為對象列表即可。

話不多說,直接上代碼:

Python端代碼:

image

注:這里只貼了核心代碼。至於如何將自定義Python轉換為Json字符串可以參考文獻[2]。

C#端代碼:

image

 

二、通過返回值傳遞Json字符串

在Python端將對象列表轉換成的Json字符串直接返回,在C#端直接捕獲該返回值,然后反序列化為對象列表,代碼如下:

Python端

image

C#端

image

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

 

參考文獻:

【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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM