を使用CSharpCodeProvider
してアセンブリをコンパイルしていますが、物理ファイルを作成したくないため、CompileParameters
GenerateInMemory
プロパティを に設定しています。true
コンパイル後、次のCompilerResults
ようなことを行うことができます:-
object x = cr.CompiledAssembly.CreateInstance("MyGeneratedClass");
Console.WriteLine(x);
期待どおりの出力が得られましたCreateInstance
。うまくいきました。
AppDomain
ただし、アセンブリに関するそのような知識がなくても、現在の型にアクセスできる必要があります。私はこのようなことをする必要があります:-
Type t = Type.GetType("MyGeneratedClass");
object x = Activator.CreateInstance(t);
問題は、このコードt
が null になってしまうことです。アセンブリはコンパイルされていますが、ロードされていないと思われます。このアセンブリをドメインにロードして、その型名を解決できるようにする方法を見つけることができないようです。
誰でも私を啓発できますか?