[英]How to share information with a new process (besides the command-line arguments)?
我正在开始一个新的过程:
process.Start();
我知道我可以使用以下方式将字符串传递给它:
process.StartInfo.Arguments = ...
但是我不仅要共享几个简单的字符串(字节数组等),还应该共享。我该怎么做?
编辑:这将作为ClickOnce应用程序安装,所以我真的不知道它将在文件系统中安装的位置,并且我想使它尽可能简单,以便在卸载后不会保留任何文件。 那我该把数据放在哪里呢?
如果数组很小,则可以对它进行base64编码。 其他选项包括将数据保存到文件或使用命名管道
您可能要使用匿名管道 。
匿名管道提供的功能少于命名管道,但也需要较少的开销。 您可以使用匿名管道来简化本地计算机上的进程间通信。 您不能使用匿名管道通过网络进行通信。
您可以创建一个临时文件,将所有必需的数据写入其中,然后将结果文件名作为命令行参数发送。 当第二个应用程序运行时,它将读取文件的内容并将其删除。
如果您可以正确编码字节数组(例如base64),则可以重定向目标进程的stdin并通过它进行流传输:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.