我想做的是引用另一个脚本。
实现这一目标的一种方法可能是使用程序集。 RoslynPad允许将脚本编译为程序集。这是我到目前为止所尝试的内容。
脚本A,编译为SOME_PATH \ thing.dll
class Thing
{
public string Name { get; set; }
}
脚本B
#r "SOME_PATH\thing.dll"
using static Program;
var t = new Thing();
t.Name = "TEST";
t.Name.Dump();
这给出了错误“无法找到类型或名称空间'Thing'......”所以我尝试了以下内容。
#r "SOME_PATH\thing.dll"
var t = new Program.Thing();
t.Name = "TEST";
t.Name.Dump();
这给出了以下错误“类型名称'Thing'在'Program'类型中不存在。”
有没有办法“编译并保存程序集”,然后从另一个脚本引用它?或者,是否有更直接的方法来交叉脚本之间的引用?
答案 0 :(得分:2)
您正在寻找的是#load
指令:
#load "Path\To\ScriptA.csx"
var t = new Thing();
您可以在Roslyn wiki中详细了解C#脚本变体。请注意,与C#Interactive窗口不同,并非与RoslynPad相关的所有内容都不是REPL。