3

私はCLR スクリプト用の .NET On-the-Flyコンパイラを作成しており、次のアイデアを実装したいと考えています。C# コードを含むテンプレート ファイルがあり、それを読み取り、アセンブリを作成し、ロードして、ソースをオンザ-増幅したいと考えています。飛ぶ。どうやってやるの?

4

1 に答える 1

4

これは、CompileAssemblyFromSourceを使用して実行できます。私は過去に似たようなことをしました。そこでは、簡単に呼び出すことができるように、静的クラスラッパーを使用していくつかのスクリプトを拡張しました。ここでそれを見ることができます(またはそれから盗むことができます)。

これを行うには、テンプレートをロードし、コードに追加の増幅を追加して、ワンショットでコンパイルします。


既存のアセンブリを変更する場合は、Mono.Cecilなどを使用する必要があります。実行時にアセンブリとしてロードおよび変更できます。CecilをベースにしたGPL製品であるReflexilを使用したCodeProjectの記事があります。これは、いくつかのアイデアを得るのに役立つ可能性があります...

于 2009-03-25T19:43:52.413 に答える