Как использовать Nested TypeBuilder перед созданием / завершением вложенного типа? - PullRequest
0 голосов
/ 28 января 2019

В настоящее время я работаю над компилятором для пользовательского языка программирования msil, используя System.Reflection.Emit, и я столкнулся с проблемой, которая беспокоила меня уже несколько дней.Я создаю тип, который действует как модуль, поэтому он содержит определения типов и функций.Это означает, что я создаю тип и затем ссылаюсь на него как, например, на тип локальной переменной в функции позже.Вот в чем проблема, потому что тип, который я определил ранее, очевидно, завершен, но когда я вызываю ILGenerator.DefineLocal([type]), он выдает TypeLoadException, говоря, что не может быть загружен включающий тип.Я предполагаю, что это потому, что он еще не был создан / завершен.

Как бы я решил эту проблему, сохраняя при этом определенный тип NestedType для типа включающего модуля?

...