動的に生成されたC#コードをコンパイルして実行するには、どのようにC#コードを記述できますか。周囲に例がありますか?C#を使用してコードを動的にコンパイル
私が行ったのは、C#クラス(またはクラス)を動的に構築し、実行時に実行することです。私は生成されたクラスが動的ではない他のC#クラスとやり取りするようにします。
exeファイルまたはdllファイルを生成する例があります。私はそれ以来、私はちょうどそれがメモリ内のいくつかのC#のコードをコンパイルして、それを実行したい。たとえば、だからここ
が動的ではないクラスで、それが私のC#のアセンブリで定義され、唯一public class NotDynamicClass
{
private readonly List<string> values = new List<string>();
public void AddValue(string value)
{
values.Add(value);
}
public void ProcessValues()
{
// do some other stuff with values
}
}
がここに動的である私のクラスである、コンパイル時に変更されます。私のC#のコードは、このクラスを生成し、それを実行し、
public class DynamicClass
{
public static void Main()
{
NotDynamicClass class = new NotDynamicClass();
class.AddValue("One");
class.AddValue("two");
}
}
ますので、結果は最後に私の非動的なコードがProcessValuesを呼ぶだろうし、それはいくつかの他のものを行うだろうということです。動的コードのポイントは、私たちまたはクライアントがカスタムロジックをソフトウェアに追加できるようにすることです。
ありがとうございました。
「プラグイン」アセンブリをコンパイルし、動的にコンパイルする代わりに実行時にそれらのプラグインをロードすることは可能でしょうか? –
そうです、私は別のプロジェクトの前にそれをしました。それは可能ですが、このプロジェクトのために私たちが何をしているのかは実際には分かりません。私はそれを考慮する、ありがとう。 – peter