Skip to content

Commit a495c46

Browse files
committed
allowed predefined references from file
1 parent a370623 commit a495c46

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/ICSharpCore/Script/InteractiveScriptEngine.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)