使用 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 参数,这可能需要额外的导入。
我正在使用 .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 参数,这可能需要额外的导入。