0

コードが実行時にコンパイルされ、コードが文字列に含まれる C# アプリケーションを作成しています (文字列は ScintillaNET コントロールから値を取得し、テキストを返すだけで、コードを含む文字列は意図したとおりに機能します)。

私の質問は: 実行時にこのソース コードからある種のクラス オブジェクトを作成する方法はありますか? たとえば、文字列には次の値が含まれます。

namespace _Testing {

class Program {
    static void Main(string[] args) {
        Console.Title = "Program";
        Console.WriteLine("If you can read this, it's all good!");
        Console.ReadKey();
    }
  }
}

このコードは、実行時に CSharpCodeProvider コンパイラによってコンパイルされています (コンパイルするクラスの配列を渡しているため、CompileAssemblyFromSourceBatch を使用)。ただし、実行時にコンパイラの MainClass プロパティを設定できるようにしたいので、クラスから名前空間を取得する必要があります。

そこで、各クラスのソースコード文字列のある種のオブジェクトを作成して、目標を達成できるようにすることを考えていました。もちろん、他のアイデアも大歓迎です。

4

1 に答える 1

0

必要なのは、動的コードをコンパイルしてロードするための CSharpCodeProver ではありません。あなたの場合、.Net Framework から DLR (CLR ではなく) を使用することをお勧めします。

または、.NET-Compiler-Plattform をご覧ください。

何をしようとしてもうまくいきません。

于 2014-11-24T22:40:46.947 に答える