2016-06-12 5 views
0

私は、子REPLプロセスを生成するNode.jsプロセスを持っています。この子プロセスはC#を話し、DLLファイルを動的にロードすることができます。私はどちらかの方法を使ってREPLに入力を送るか、時にはProxy()を使用します。 REPLのstdoutがオブジェクトに返され、共通のobj.on(データ、関数)実装を使用して捕捉されます。オブジェクトのメソッドを呼び出すと、それは子プロセスstdinに渡されます。Node.jsをREPLの子プロセスに話すのは悪い習慣ですか?

これはすべてチャームのように機能し、.NETまたはサードパーティのアセンブリを読み込み、その型とメソッドをNodeに公開することができます。非常に効果的ですが、この方法では本能的に非常に醜いと感じます。

Windows以外のプラットフォームでも動作する必要はありません。

これは「悪い習慣」ですか?もしそうなら、これはどうしてですか?それについて何が悪いですか?あなたはどうやってそれをより良くしますか?

編集:私は別の方法を探しているわけではありませんが、今私が大胆にした質問に答えたいと思います。

答えて

0

ノードと.NETの間の相互運用が必要な場合は、edge.jsプロジェクトがあります。これは、探しているものかもしれません。現在、ノードからのCLRへのアクセスはクロスプラットフォーム(Windows、Linux、OS X)で利用可能です。

+0

ありがとうございますが、これは私の質問に対する答えではありません。私の解決策はEdgeよりも(私のために)優れています。問題は、ノードがどのタイプのREPLにも話すことを悪い習慣にするかどうかです。 –

+0

パフォーマンス以外の理由がなければ、仲介者(REPLなど)を使用するよりも、直接対話するほうが「より良い方法」であるため、推奨しました。 – mscdex

関連する問題