使用 pythonnet 将流传递给 .net DLL

Using pythonnet to pass stream to .net DLL

我正在使用 .NET DLL 文件处理器,但似乎无法使流传递正常工作。我有以下相关方法。

EmbedFile(string): bool
EmbedFile(Stream): bool

使用字符串版本时,在给定文件名时它会按预期工作。

encoder.EmbedFile("test.dat")

但是,我不确定要将什么传递给流版本。我试过 io.BytesIO 和文件句柄,但都给了我以下内容。

TypeError: No method matches given arguments for EmbedFile

传递给采用 Stream 参数的 .NET 方法的正确对象是什么?

我知道这是一个迟到的回复,但您是否尝试过导入一个继承自 Stream 的 .NET class,然后在 Python.

中构建一个实例
import clr
from System import File
from System.IO import FileStream

def main():   
    path = "path\to\file.dat"

    clrFile = File(path)

    clrFileStream = FileStream(clrFile)

    returnValue = EmbedFile(clrFileStream)

注意:如果派生流的构造函数中存在更多 .NET 参数,这可能需要额外的导入。