Я использую CodeDOM для генерации и компиляции сборки. Я обнаружил, что если сгенерированный код не компилируется, метод CompileAssemblyFromDom генерирует номера строк, которые отличаются от того, что генерирует Visual Studio.
Так, например, если я вызову GenerateCodeFromCompileUnit для провайдера кода, перенесу сгенерированный код в Visual Studio и попытаюсь скомпилировать его, номера строк в каждой ошибке напрямую соответствуют строке кода, но номера строк, возвращаемые в Объект CompilerResults из метода CompileAssemblyFromDom напрямую не соотносится с одной и той же строкой сгенерированного кода.
Это становится проблемой для меня, потому что я динамически компилирую код, и если есть ошибки, я хочу отобразить код и выделить нужную строку для пользователя. Кто-нибудь сталкивался с такой же проблемой?
Edit:
Я думаю, это потому, что целые строки, которые являются комментариями, не учитываются как строки при сообщении номеров строк поставщиком CodeDom, но они относятся к Visual Studio. Любой способ изменить расчет номера строки поставщиком CodeDom, чтобы включить закомментированные строки?