TargetType EvaluateExpressionType(ScriptingContext context, string expression) { try { Expression expr = context.ParseExpression(expression); Expression resolved = expr.TryResolveType(context); if (resolved != null) { expr = resolved; } else { expr = expr.Resolve(context); } if (expr == null) { Assert.Fail("Cannot resolve expression `{0}'.", expression); } return(expr.EvaluateType(context)); } catch (ScriptingException) { throw; } catch (AssertionException) { throw; } catch (Exception ex) { Assert.Fail("Failed to evalaute type of expression `{0}': {1}", expression, ex); return(null); } }
object EvaluateExpression(ScriptingContext context, string expression) { try { Expression expr = context.ParseExpression(expression); expr = expr.Resolve(context); if (expr == null) { Assert.Fail("Cannot resolve expression `{0}'.", expression); } object obj = expr.Evaluate(context); if (obj == null) { Assert.Fail("Failed to evaluate expression `{0}.", expression); } return(obj); } catch (ScriptingException) { throw; } catch (AssertionException) { throw; } catch (Exception ex) { Assert.Fail("Failed to evalaute expression `{0}': {1}", expression, ex); return(null); } }