使用dotnet核心的 NamedPipeClientStream 或 NamedPipeServerStream 类创建命名管道时,关联的“管道”(看起来实际上是一个套接字)添加了“ CoreFxPipe_”自动位于文件名的前面。
有没有一种防止这种行为的方法?我只是希望文件名与我提供给构造函数的名称完全相同。
在dotnet核心documentation中,它描述了以下构造函数:
NamedPipeServerStream(String)
使用指定的管道名称初始化NamedPipeServerStream类的新实例。
但是,由于上述原因,此描述似乎充其量是误导性的。
答案 0 :(得分:0)
解决方案:
使用绝对路径作为管道名称
详细信息:
在 NamedPipeClientStream 的源代码中,第93 行显示,通过调用 GetPipePath 将管道名称“标准化”,即 PipeStream 类的方法。查看 PipeStream 的源代码,第35行中实现了 GetPipePath 。
似乎该方法检查“ IsPathRooted”(大概是;管道名称是绝对路径)。如果是这样,它将为您“完全控制”定义套接字的路径。否则,它将把套接字放在/ tmp /中,并在文件名中添加 CoreFxPipe _ 前缀。