Я использую 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
оказывается нулевым.Теперь я подозреваю, что хотя сборка скомпилирована, она не загружается.Я не могу найти, чтобы загрузить эту сборку в домен, чтобы можно было разрешить имена его типов.
Может ли кто-нибудь просветить меня?