0

実行時にアセンブリを読み込んで作成したいのですが、名前空間 System.Reflection.Assembly と System.Reflection.Emit を使用するよう誰かに言われました。

私が見つけた参考文献は msdn だけでしたが、どこからどのように始めればよいかわからない場合は、msdn を使用するのは適切ではありません。私はすでにグーグルで検索しましたが、有用なチュートリアル/サンプル/リファレンスは見つかりませんでした.

誰かが私に機能を説明したり、サンプルやチュートリアルを提供してくれたりできますか?

4

2 に答える 2

6

http://msdn.microsoft.com/en-us/library/saf5ce06.aspx

 public static void CompileScript(string source)
        {
            CompilerParameters parms = new CompilerParameters();
            parms.GenerateExecutable = true;
            parms.GenerateInMemory = true;
            parms.IncludeDebugInformation = false;
            parms.ReferencedAssemblies.Add("System.dll");
            // Add whatever references you might need here 
            CodeDomProvider compiler = CSharpCodeProvider.CreateProvider("CSharp");
            CompilerResults results = compiler.CompileAssemblyFromSource(parms, source);
            file.move(results.CompiledAssembly.Location,"c:\myassembly.dll");
        }
于 2012-10-01T20:45:24.573 に答える
0

ソース ファイルからアセンブリを作成する方法の 1 つは、CSC (C# コマンド ライン コンパイラ) を実行して、ソース ファイルと参照を引数として渡すことです。特に他の誰かが提供したコードからアセンブリをビルドする場合は、手動の IL 生成は高度すぎる可能性があります。

ロードするには、Assembly.Load を使用します。

于 2012-10-01T21:00:38.587 に答える