Skip to content

Commit 9627147

Browse files
committed
A
1 parent 6b4eaf7 commit 9627147

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

CSharp.Scripting.csx

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
#r "nuget: Python.System, *"
22
#r "nuget: Microsoft.CodeAnalysis.CSharp.Scripting, *"
3+
34
using Python;
45
using static Python.System;
5-
using Microsoft.CodeAnalysis.CSharp.Scripting;
6+
using Microsoft.CodeAnalysis;
67
using Microsoft.CodeAnalysis.Scripting;
8+
using Microsoft.CodeAnalysis.CSharp;
9+
using Microsoft.CodeAnalysis.CSharp.Scripting;
10+
using Microsoft.CodeAnalysis.CSharp.Syntax;
711
using System.IO;
812

913
Console.WriteLine(@"测试输入输出函数:Directory.GetCurrentDirectory()");
@@ -14,9 +18,29 @@ Console.WriteLine(res);
1418

1519
var codeText = File.ReadAllText(@"./CSharp.Scripting.codetext.csx");
1620
codeText = codeText.Insert(0, "using static Python.System;\r\n");
21+
codeText = codeText.Insert(0, "using static Python.System;\r\n");
1722
var scriptOptions = ScriptOptions.Default
1823
.AddReferences(typeof(Python.System).Assembly);
1924
scriptOptions.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

Comments
 (0)