2016-08-19 6 views
0

IronPythonのコードがあり、それに変数を渡していて、Pythonから結果を受け取ったがっています。その後、私はちょうどそのよう結果を取る別のAppDomainでコードを実行するには? IronPythonコードをサンドボックスにする必要があります

ScriptEngine pyEngine = IronPython.Hosting.Python.CreateEngine() 

:私は私が現在のドメインでエンジンを作成するときにIronPythonのから結果を得ることができた

var result = this.pyScope.GetVariable("ObiektMS").code_1_1_1("II"); 

しかし、私はそれはそうイム作成をサンドボックス化必要その中に制限された権限でのAppDomain、実行エンジン:

ScriptEngine pyEngine = IronPython.Hosting.Python.CreateEngine(newDomain) 

しかし、私は

を得るSAMYの方法で結果を取得しようと、この時間
An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in PythonTimeTests.exe 

私の "result"変数が別のドメインにあり、ironpythonの結果をシリアル化する必要があるのでしょうか?

新しいドメインに変数を作成することはできますか? 私のプログラムでこれをやりたい:

1.ファイルから辞書を読み込む。

2.制限付きで新しいドメインを作成し、それに辞書を渡します。 (すべての制限されたドメイン内)のC#から無制限ドメインへ

4.Return結果をPythonの関数を呼び出すことにより、鉄のpythonで

3.Do作品。

答えて

1

はい - 彼らはMarshallByRefObjectから継承されない限り、ここで説明したように、クロスドメイン変数は、ドメイン間でシリアライズされSharing data between AppDomains

あなたの2番目の質問は、「私は...いくつかのC#のものを行うことができます」である - はい。 AppDomainで何でもできます。 AppDomain間でデータをやり取りするには、AppDomainデータ転送のルールに従うだけです。

関連する問題