में एक मिनी-प्रोग्राम चलाना मैं एक इंटरैक्टिव सी # शिक्षण ऐप लिखने की कोशिश कर रहा हूं, जहां उपयोगकर्ता कोड उदाहरणों का प्रयोग/परिवर्तन कर सकता है और देख सकता है कि क्या होता है (थोड़े की तरह jsfiddle)।Mono.Csharp
मुझे छोटे अभिव्यक्तियों या आरईपीएल जैसे रनोटाइम कंपाइलर के रूप में Mono.Csharp के उपयोग के लिए बहुत सारे उदाहरण मिल गए हैं, लेकिन मुझे ऐसा कोई उदाहरण नहीं मिल रहा है जहां "मिनी प्रोग्राम" निष्पादित किया गया हो।
यहां मेरा खिलौना कोड अब तक है (एक एमवीसी कार्रवाई)। "कोड" पैरामीटर सीधे टेक्स्टरेरा से पोस्ट किया जाता है।
[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!");
}
}
मैं कैसे bootstrap कि यह (अर्थात् एक MyClass
वस्तु का दृष्टांत और उस पर DoSomething
कहते हैं)? मैं सिर्फ अंत करने के लिए new MyClass().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'
मैं क्या याद आ रही है?
क्या आप पूरी फ़ाइल पोस्ट कर सकते हैं जिसमें MyClass क्लास है? –
MyClass कोड फ़ाइल में नहीं है, यह एक स्ट्रिंग में है। –