1

私の現在のプロジェクトは、C# でコードを記述し、CSharpCodeProvider を使用して実行できるアプリケーションです。この時点では、コード自体が完全なアプリケーションである限り、問題なく動作します。次に例を示します。

using System;

namespace RuntimeCode {
    public static class Program {
        public static void Main() {
            Console.WriteLine("Hello, world!");
        }
    }
}

次に、アプリケーションはCompileAssemblyFromSourcewithを使用して指定されたコードをコンパイルし、コンパイルされたアセンブリ内でメソッドGenerateInMemory = trueを呼び出します。Main

私の質問は、コンパイルされたコードがメイン アプリケーションのオブジェクトにアクセスできるようにするにはどうすればよいかということです。

4

3 に答える 3

0

次に、アプリケーションは指定されたコードをコンパイルし[…]、コンパイルされたアセンブリ内でMainメソッドを呼び出します。

それはほとんどあなたの質問に答えると思います。Main()コンパイルするコードにパラメーターのないメソッドが必要な理由はありません。たとえば、アクセスする必要のあるメソッドがIHostインターフェイスにある場合、スクリプトにMain型のパラメーターを持つメソッドが必要になる可能性がありますIHost。次に、それを呼び出して、の現在のインスタンスを渡しますIHost

于 2012-12-14T21:27:03.840 に答える