我想通了,我無法從另一輕鬆地將一個腳本庫:如何從Roslyn腳本文件加載引用的腳本庫?
module.csx
string SomeFunction() {
return "something";
}
script.csx
ExecuteFile("module.csx");
SomeFunction() <-- causes compile error "SomeFunction" does not exist
這是因爲編譯器不知道模塊。 csx在編譯script.csx afaiu時。我可以添加另一個腳本來加載這兩個文件,這將起作用。但那不是那麼漂亮。
取而代之,我喜歡在我的腳本中爲我的腳本檢查特殊語法「加載模塊」,並在實際腳本執行之前執行這些模塊。
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