を使用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 になってしまうことです。アセンブリはコンパイルされていますが、ロードされていないと思われます。このアセンブリをドメインにロードして、その型名を解決できるようにする方法を見つけることができないようです。
誰でも私を啓発できますか?