public async Task EvalTest() { var result = await _scriptEngine.Eval("1+1", new NScriptOptions()); Assert.Equal(2, result); result = await _scriptEngine.Eval("\"Hello \" + \"NatashaPad\"", new NScriptOptions()); Assert.Equal("Hello NatashaPad", result); result = await _scriptEngine.Eval("DateTime.Today.ToString(\"yyyyMMdd\")", new NScriptOptions()); Assert.Equal(DateTime.Today.ToString("yyyyMMdd"), result); }
private async void BtnRun_OnClick(object sender, RoutedEventArgs e) { var input = txtInput.Text?.Trim(); if (string.IsNullOrEmpty(input)) { return; } txtOutput.Text = string.Empty; try { if (input.Contains("static void Main(") || input.EndsWith(";")) { // statements, execute await _scriptEngine.Execute(input, _scriptOptions); } else { // expression, eval var result = await _scriptEngine.Eval(txtInput.Text, _scriptOptions); if (null == result) { txtOutput.AppendText("(null)"); } else { var dumpedResult = _dumperResolver.Resolve(result.GetType()) .Dump(result); txtOutput.AppendText(dumpedResult); } } } catch (Exception exception) { MessageBox.Show(exception.Message, "执行发生异常"); } }