c# - C# 的快速方式与同一主机中具有大字符串数据的 python 3 模块通信
问题描述
我们有一个需要升级到 python 3 的 python 2 模块。并且同一主机中的 C# 应用程序将传递一个大的 XML 字符串数据来调用该 python 模块并使用 COM 服务器从 python 获取响应。由于 py2exe 支持 COM 服务器,它工作得非常好。但是 py2exe 在 python 3 中不再可用,并且其他 python 发布工具都不支持 COM 服务器(例如 pyinstaller)。所以我们必须另辟蹊径。
我尝试在 C# 中使用 Process,使用 StandardInput 调用 python,在 python 端,我将接受输入以获取数据并响应 C#。它工作正常,但与以前的实现相比,它看起来要慢得多。
还有一些其他选项,例如 Socket 并公开 REST API。但是对于同一主机上的两个应用程序,使用网络方法会不会过大?
解决方案
在进一步挖掘之后,看起来您需要 gRPC,它在 Python 3 和 .NET(核心和框架 4.5+)中都受支持:
https://grpc.io/docs/tutorials/basic/python/
https://docs.microsoft.com/en-us/aspnet/core/grpc/basics?view=aspnetcore-3.1
推荐阅读
- javascript - 使用 chart.js 堆叠两个 y 轴
- java - 出现错误:尝试在静态方法中构造类时,无法从静态上下文中引用非静态变量 this
- mysql - sql更新where子查询
- python - 有没有办法用 if 语句方法来简化这个列表理解?
- r - 如何在“聚合”之后绘制(带误差线)?
- python - 给定一个字典列表,我怎样才能找到每个键出现在多少个字典中?
- kubernetes - Grafana 仪表板不在 Rancher UI 中显示数据
- html - 页脚覆盖主要内容
- javascript - Squarespace JQuery:特定高度上的侧导航活动类
- linux - XLS 多个文件在 Linux 中转换为单个 csv