@@ -37,13 +37,22 @@ public class InteractiveScriptEngine
3737
3838 private string _currentDirectory ;
3939
40+ private string [ ] _references ;
41+
4042 public InteractiveScriptEngine ( string currentDir , ILogger logger )
4143 {
4244 _currentDirectory = currentDir ;
4345 _logger = logger ;
4446
4547 _scriptOptions = CreateScriptOptions ( ) ;
4648
49+ var referencesFile = Path . Combine ( Directory . GetCurrentDirectory ( ) , "refs.txt" ) ;
50+
51+ if ( File . Exists ( referencesFile ) )
52+ {
53+ _references = File . ReadAllLines ( referencesFile , Encoding . UTF8 ) ;
54+ }
55+
4756 _runtimeDependencyResolver = new RuntimeDependencyResolver ( ( t ) => ( level , m , e ) =>
4857 {
4958 logger . Log ( MapLogLevel ( level ) , m , e ) ;
@@ -85,6 +94,15 @@ public async Task<object> ExecuteAsync(string statement)
8594 "using static ICSharpCore.Primitives.DisplayDataEmitter;"
8695 } ;
8796
97+ var refsFromFile = string . Empty ;
98+
99+ var references = _references ;
100+
101+ if ( references != null && references . Any ( ) )
102+ {
103+ usingStatements = references . Union ( usingStatements ) . ToArray ( ) ;
104+ }
105+
88106 _scriptState = await CSharpScript . RunAsync ( string . Join ( "\r \n " , usingStatements ) , _scriptOptions , globals : _globals ) ;
89107 _scriptState = await _scriptState . ContinueWithAsync ( statement , _scriptOptions ) ;
90108 }
0 commit comments