ホームページ >バックエンド開発 >C++ >javascriptのeval()のようなC#で動的コード実行を達成するにはどうすればよいですか?

javascriptのeval()のようなC#で動的コード実行を達成するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-28 05:41:11875ブラウズ

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

C#の動的コードは

を実行します javascriptの

関数と同様に、C#はRoslynスクリプトAPIを使用して動的コードを実装できます。このAPIを使用すると、実行時にC#コードを動的にコンパイルおよび実行できます。

eval()例:

整数変数と「Property1」、「Property2」、「Property3」などの複数の属性があるとします。 「プロパティ

i

」属性でi値に応じて操作を実行する必要があります。 i RoslynスクリプトAPIを使用した ソリューション:

この例は、アセンブリを動的にロードし、値に従って属性にアクセスします。

<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>
その他の関数:

i

roslynスクリプトAPIを使用すると、C#コードフラグメントを実行できます。

以前にコンパイルされたコードを引用することもできます:

以上がjavascriptのeval()のようなC#で動的コード実行を達成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。