4

What I'd like to do is reference one script from another.

One way to make this happen might be using assemblies. RoslynPad allows compiling a script into an assembly. Here is what I have tried so far.

Script A, which is compiled to SOME_PATH\thing.dll

    class Thing
    {
        public string Name { get; set; }
    }

Script B

    #r "SOME_PATH\thing.dll"

    using static Program;

    var t = new Thing();
    t.Name = "TEST";
    t.Name.Dump();

This gives the error "The type or namespace 'Thing' could not be found..." so I tried the following.

    #r "SOME_PATH\thing.dll"

    var t = new Program.Thing();
    t.Name = "TEST";
    t.Name.Dump();

This gave the following error "The type name 'Thing' does not exist in the type 'Program'".

Is there a way to "Compile and Save assembly" and then reference it from another script? Or, is there a more direct way to cross reference between scripts?

1 Answers1

6

What you're looking for is the #load directive:

#load "Path\To\ScriptA.csx"

var t = new Thing();

You can read more about the C# script variant in the Roslyn wiki. Note that not everything there is relevant to RoslynPad, which unlike the C# Interactive window, is not a REPL.

Eli Arbel
  • 22,391
  • 3
  • 45
  • 71