Heim >Backend-Entwicklung >C++ >Wie kann ich eine dynamische Codeausführung in C# wie JavaScripts Eval () erreichen?

Wie kann ich eine dynamische Codeausführung in C# wie JavaScripts Eval () erreichen?

DDD
DDDOriginal
2025-01-28 05:41:11871Durchsuche

How Can I Achieve Dynamic Code Execution in C# Like JavaScript's eval()?

Der dynamische Code im C#führt

aus Ähnlich wie bei der

-Funktion in JavaScript kann C#die Roslyn -Skript -API verwenden, um den dynamischen Code zu implementieren. Mit dieser API können Sie den C#Code zur Laufzeit dynamisch kompilieren und ausführen.

eval() Beispiel:

Angenommen, Sie haben eine ganzzahlige Variable und mehrere Attribute wie "Property1", "Property2", "Property3". Sie möchten Operationen auf dem Attribut "Eigenschaft

i

" gemäß dem Wert i ausführen. i Lösung mit der Roslyn -Skript -API:

Dieses Beispiel lädt die Montage dynamisch und greift auf das Attribut nach dem Wert zu.

<code class="language-csharp">// 添加NuGet包 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync($"System.Reflection.Assembly.LoadFrom(\"{new FileInfo(\"your-assembly-to-load.dll\").FullName}\")");

await CSharpScript.RunAsync($"var propertyValue = typeof(YourType).GetProperty(\"Property{i}\").GetValue(yourTypeInstance);");</code>
Andere Funktionen:

i

Roslyn Skript -API ermöglicht es Ihnen, ein C# -Codefragment auszuführen:

Sie können auch den zuvor kompilierten Code zitieren:

Das obige ist der detaillierte Inhalt vonWie kann ich eine dynamische Codeausführung in C# wie JavaScripts Eval () erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn