2011-01-04 11 views
2

IronPythonのファイルライクなオブジェクトを.NETストリームに簡単に変換できますか?逆はIronPythonで次のようにして行うことができます。IronPythonファイルオブジェクトを.NETストリームオブジェクトに変換する

net_stream = File.OpenRead('file.txt') 
python_file = file(net_stream) 

逆の簡単な方法があるのでしょうか?または、Streamから継承し、すべてのメソッドを実装するラッパーを作成する必要がありますか?

答えて

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