I CSharpEval's ScopeCompile Funktionalität bin mit mir zu erlauben, einen kompilierte Ausdruck auf verschiedene Daten wieder zu verwenden:ScopeCompile erwartet, dass bereits Variablen existieren, negiert das nicht den ganzen Punkt?
var exp = new CompiledExpression<int>("a.Count");
var func = exp.ScopeCompile();
Aber ich bekomme diese Ausnahme in dem ScopeCompile
Aufruf:
Eine Ausnahme vom Typ "ExpressionEvaluator.Parser.ExpressionParseException" ist in ExpressionEvaluator.dll aufgetreten, wurde aber nicht im Benutzercode verarbeitet
Weitere Informationen: Kann nicht aufgelöst werden Symbol "a" bei Zeile 1 char 0
Ich verstehe nicht, was passiert. Das Beispiel in meinem Link erlaubt das Caching von Scope-kompilierten Ausdrücken und was nutzt es, wenn die Variablen in meinem Ausdruck bereits vorhanden sein müssen, wenn der Ausdruck kompiliert wird ?!
Die Dokumentation ist ziemlich begrenzt und dieser Bereich von C# ist nicht einer, den ich gut genug verstehe, um einfach den Quellcode einfach zu lesen.
Ich bin verwirrt, wie ich diese kompilierten Ausdruck mit verschiedenen Daten wiederverwenden kann, wenn ich die Daten zur Compile-Zeit zur Verfügung stellen müssen? In dem verlinkten Beispiel 'GetCachedFunction' wie funktioniert das? Ich bin mir nicht sicher, ob die Dokumentation schlecht ist oder ob ich etwas Grundlegendes verpasse! –
@ Mr.Boy Wie wollen Sie "a" weitergeben? Was er mit GetCachedFunction meint, ist, dass Sie 'ScopeCompile' nicht aufrufen müssen, da es sich um einen CPU-intensiven Betrieb handelt. Sie können 'func' in Ihrem Cache speichern, um denselben Ausdruck aufzurufen. –