将IronPython文件对象转换为.NET Stream对象

3
有没有一种简单的方法将IronPython文件对象转换为.NET流?在IronPython中,可以使用以下代码实现相反的操作:
net_stream = File.OpenRead('file.txt')
python_file = file(net_stream)

有没有简单的方法可以将其转换回来?还是必须编写一个继承自Stream并实现所有方法的包装器?

顺便说一句,我的意图正好相反,所以你提问的代码恰好是我需要的。 - Michael
1个回答

1

显然可以这样做:

import System
f = file('abc.txt', 'w+')
f.GetType().GetField('_stream', System.Reflection.BindingFlags.Instance | 
                                System.Reflection.BindingFlags.NonPublic).GetValue(f)

1
但是这仅适用于基于.NET流构建的“真实”文件对象,而不适用于任意类似文件的对象(鸭子类型)。 - MarkusSchaber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接