4

我想做的是从另一个脚本中引用一个脚本。

实现这一点的一种方法可能是使用程序集。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();

这给出了以下错误“类型名称'事物'不存在于类型'程序'中”。

有没有办法“编译并保存程序集”,然后从另一个脚本中引用它?或者,是否有更直接的方法可以在脚本之间交叉引用?

4

1 回答 1

5

您正在寻找的是#load指令:

#load "Path\To\ScriptA.csx"

var t = new Thing();

您可以在Roslyn wiki中阅读有关 C# 脚本变体的更多信息。请注意,并非所有内容都与 RoslynPad 相关,与 C# Interactive 窗口不同,RoslynPad 不是 REPL。

于 2017-07-08T08:44:03.793 回答