Ответ 1
Оценщик выражения С# использует интерфейсы ICorDebugEval
и ICorDebugEval2
для взаимодействия с CLR во время сеанса отладки. Этот интерфейс не позволяет вызывать любой конструктор типа string
. Вместо этого он заставляет все вызовы создавать новый экземпляр string
для прохождения метода ICorDebugEval::NewString
. С# EE не имеет особого случая string
в EE, поэтому он пытается вызвать конструктор напрямую и терпит неудачу.
Обратите внимание: вы не увидите это исключение с VB.Net в Visual Studio 2010. Это вызовы специальных случаев для конструкторов string
, оценивая аргументы и перенаправляя полученный объект string
на ICorDebugEval::NewString