Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [HttpPost]
- public ActionResult Index(string code)
- {
- var reportWriter = new StringWriter();
- var settings = new CompilerSettings();
- var printer = new ConsoleReportPrinter(reportWriter);
- var reports = new Report(printer);
- var eval = new Evaluator(settings, reports);
- var model = new CodeViewModel();
- model.Code = code;
- eval.Run(code);
- model.Result = reportWriter.ToString();
- return View("Index", model);
- }
- using System;
- public class MyClass
- {
- public void DoSomething()
- {
- Console.WriteLine("hello from DoSomething!");
- }
- }
- {interactive}(1,2): warning CS0105: The using directive for `System' appeared previously in this namespace
- {interactive}(1,8): (Location of the symbol related to previous warning)
- {interactive}(11,1): error CS1530: Keyword `new' is not allowed on namespace elements
- {interactive}(11,4): error CS1525: Unexpected symbol `MyClass', expecting `class', `delegate', `enum', `interface', `partial', or `struct'
- var reportWriter = new StringWriter();
- var settings = new CompilerSettings();
- var printer = new ConsoleReportPrinter(reportWriter);
- var reports = new Report(printer);
- var eval = new Evaluator(settings, reports);
- eval.Run(code);
- eval.Run(@"
- var output = new System.IO.StringWriter();
- Console.SetOut(output);
- new MyClass().DoSomething();");
- var model = new CodeViewModel();
- model.Code = code;
- if (reports.Errors > 0)
- model.Result = reportWriter.ToString();
- else
- model.Result = (string) eval.Evaluate("output.ToString();");
- return View("Index", model);
Add Comment
Please, Sign In to add comment