11#r "nuget: Python.System, *"
22#r "nuget : Microsoft . CodeAnalysis . CSharp . Scripting , * "
3+
34using Python;
45using static Python . System ;
5- using Microsoft . CodeAnalysis . CSharp . Scripting ;
6+ using Microsoft . CodeAnalysis ;
67using Microsoft . CodeAnalysis . Scripting ;
8+ using Microsoft . CodeAnalysis . CSharp ;
9+ using Microsoft . CodeAnalysis . CSharp . Scripting ;
10+ using Microsoft . CodeAnalysis . CSharp . Syntax ;
711using System . IO ;
812
913Console . WriteLine ( @"测试输入输出函数:Directory.GetCurrentDirectory()" ) ;
@@ -14,9 +18,29 @@ Console.WriteLine(res);
1418
1519var codeText = File . ReadAllText ( @"./CSharp.Scripting.codetext.csx" ) ;
1620codeText = codeText . Insert ( 0 , "using static Python.System;\r \n " ) ;
21+ codeText = codeText . Insert ( 0 , "using static Python.System;\r \n " ) ;
1722var scriptOptions = ScriptOptions . Default
1823 . AddReferences ( typeof ( Python . System ) . Assembly ) ;
1924scriptOptions . AddReferences ( typeof ( System . Math ) . Assembly ) ;
2025
21- res = await CSharpScript . EvaluateAsync ( codeText , scriptOptions ) ;
22- Console . WriteLine ( res ) ;
26+ SyntaxTree tree = CSharpSyntaxTree . ParseText ( codeText ) ;
27+
28+ var script = CSharpScript . Create ( codeText , scriptOptions ) ;
29+ /*
30+ public ScriptRunner<T> CreateDelegate(CancellationToken cancellationToken = default);
31+ public Task<ScriptState<T>> RunAsync(object globals, CancellationToken cancellationToken);
32+ public Task<ScriptState<T>> RunAsync(object globals = null, Func<Exception, bool> catchException = null, CancellationToken cancellationToken = default);
33+ public Task<ScriptState<T>> RunFromAsync(ScriptState previousState, CancellationToken cancellationToken);
34+ public Task<ScriptState<T>> RunFromAsync(ScriptState previousState, Func<Exception, bool> catchException = null, CancellationToken cancellationToken = default);
35+ public Script<T> WithOptions(ScriptOptions options);
36+ */
37+ try
38+ {
39+ res = await script . RunAsync ( ) ;
40+ print ( res ) ;
41+ }
42+ catch ( System . Exception codeError )
43+ {
44+ print ( codeError . Message ) ;
45+ // print(codeError.StackTrace);
46+ }
0 commit comments