私は簡単に別の1つのスクリプトライブラリをロードすることはできません考え出し:参照スクリプトライブラリをRoslynスクリプトファイルから読み込む方法は?
module.csx
string SomeFunction() {
return "something";
}
script.csx
ExecuteFile("module.csx");
SomeFunction() <-- causes compile error "SomeFunction" does not exist
コンパイラがモジュールを認識していないためです。 csxはscript.csx afaiuをコンパイルするときに使用します。私は別のスクリプトを追加して、そこから2つのファイルを読み込むことができます。しかしそれはそれほど美しいものではありません。
代わりに、スクリプトホスト内で特別な構文 "load module"をチェックし、実際のスクリプトの実行前にそれらのモジュールを実行するのが好きです。今
script.csx
// load "module.csx"
SomeFunction()
、いくつかの基本的な文字列処理で、私は(//ロードに含まれる行を...)ロードするためにどのモジュールを把握していることをロードできるファイル(ここでは要点https://gist.github.com/4147064) :
foreach(var module in scriptModules) {
session.ExecuteFile(module);
}
return session.Execute(script)
しかし - 私たちはロズリンを話していることから、右、私が探している構文のスクリプトを解析するためにいくつか良い方法があるはず?
さらに、コードのモジュールライブラリを処理する方法が存在する可能性もあります。
を全体の最初のバージョン:https://github.com/joeriks/RoslynWebScript – joeriks