Как отладить/повредить в codedom скомпилированном коде

Таким образом, Ваша таблица представляет fieldArray, который является Массивом значений. При удалении корректного объекта из массива, таблица будет повторно представлена и покажет корректные данные, в которых Вы нуждаетесь. Это - основное понятие привязки данных и обнаружения изменения в Угловом :-)

можно использовать fieldArray.splice(index,1) для удаления объекта, который Вы (или пользователь) выбрали

21
задан Jason Coyne 5 September 2012 в 15:35
поделиться

2 ответа

Попробуйте следующие варианты:

parameters.GenerateInMemory = false; //default
parameters.TempFiles = new TempFileCollection(Environment.GetEnvironmentVariable("TEMP"), true);
parameters.IncludeDebugInformation = true;

Я не уверен, работает ли это нормально в вашем случае, но если да, вы можете окружить эти параметры директивой условной компиляции, чтобы она выгружала сгенерированную сборку только в режиме отладки.

37
ответ дан 29 November 2019 в 20:13
поделиться

Ответ от @bbmud правильный, хотя в нем отсутствует одно исправление ошибки. CSharpCodeGenerator (класс в .NET, который компилирует код C # в IL) настроен на удаление файлов pdb сразу после их создания, ЕСЛИ вы не добавили / debug: pdbonly в строку CompilerOptions. Однако, если вы это сделаете, флаг IncludeDebugInformation игнорируется, и компилятор генерирует оптимизированный код, который трудно отлаживать. Чтобы избежать этого, вы должны явно указать генератору кода хранить все файлы.

Вот полный рецепт:

parameters.GenerateInMemory = false; //default
parameters.TempFiles = new TempFileCollection(Environment.GetEnvironmentVariable("TEMP"), true);
parameters.IncludeDebugInformation = true;
parameters.TempFiles.KeepFiles = true

Вот виновная часть кода CSharpCodeGenerator:

  string fileExtension = "pdb";
    if ((options.CompilerOptions != null) && (CultureInfo.InvariantCulture.CompareInfo.IndexOf(options.CompilerOptions, "/debug:pdbonly", CompareOptions.IgnoreCase) != -1))
    {
        results.TempFiles.AddExtension(fileExtension, true);
    }
    else
    {
        results.TempFiles.AddExtension(fileExtension);
    }

TempFiles.AddExtension (fileExtension , истина) указывает компилятору сохранить файлы pdb. Параметр else в results.TempFiles.AddExtension (fileExtension);

10
ответ дан 29 November 2019 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: