ホームページ > バックエンド開発 > C++ > WPF C# アプリケーションでテキスト ファイルからコードを実行するにはどうすればよいですか?

WPF C# アプリケーションでテキスト ファイルからコードを実行するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-07 19:57:41
オリジナル
725 人が閲覧しました

How Can I Execute Code from a Text File in a WPF C# Application?

WPF C# アプリケーションでの動的コード実行

この記事では、WPF C# アプリケーション内の外部テキスト ファイルからコードを実行する問題に取り組みます。 実行されるコードを含むテキスト ファイルは、アプリケーションの実行ディレクトリに存在します。

実装

このソリューションは、コードのコンパイルとリフレクション技術を組み合わせて利用します。 このプロセスには、テキスト ファイルからのコードのリアルタイム コンパイルと、その後のインスタンス化と、コンパイルされたアセンブリからのターゲット メソッドの呼び出しが含まれます。

次のコード スニペットは、このアプローチを示しています。

<code class="language-csharp">// ... code ...

Dictionary<string, string> providerOptions = new Dictionary<string, string>
{
    {"CompilerVersion", "v3.5"}
};
CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);

CompilerParameters compilerParams = new CompilerParameters
{
    GenerateInMemory = true,
    GenerateExecutable = false
};

CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, sourceCode);

if (results.Errors.Count > 0)
    throw new Exception("Compilation failed!");

object instance = results.CompiledAssembly.CreateInstance("Foo.Bar"); // Assuming the class is named "Bar" in the "Foo" namespace
MethodInfo method = instance.GetType().GetMethod("SayHello"); // Assuming the method is named "SayHello"
method.Invoke(instance, null);</code>
ログイン後にコピー

詳しい説明

コードはまず C# コードをテキスト ファイルから文字列変数 (sourceCode) に読み取ります。 CSharpCodeProvider は、指定されたコンパイラ オプションで初期化されます。 CompilerParameters は、実行可能ファイルを作成せずに、コンパイルされたアセンブリをメモリ内に生成するように設定されています。次に、CompileAssemblyFromSource メソッドがコンパイルを実行します。

エラーチェックはコンパイルプロセスの後に行われます。コンパイルが成功すると、コンパイルされたクラスのインスタンスが CreateInstance を使用して作成され、指定されたメソッドが GetMethodInvoke を使用して呼び出されます。これにより、外部からロードされたコードの動的実行が可能になります。 名前空間およびクラス/メソッド名は、テキスト ファイル内のコードと一致する必要があることに注意してください。 本番環境での堅牢性を確保するには、エラー処理 (try-catch ブロックなど) を追加する必要があります。

以上がWPF C# アプリケーションでテキスト ファイルからコードを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート