Я наблюдаю некоторое нечетное поведение при отладке некоторого кода С# в VS 2013. Когда я наводил курсор на любые переменные, привязанные к текущему методу, я могу видеть информацию о переменных. На скриншоте ниже вы можете увидеть, что ivSimulation закреплена и отображается информация. Однако, хотя вы не можете сказать, у меня была указатель мыши на this._simulator
, и ничего не появилось. QuickWatch тоже ничего не показывает.
У другой коллеги также есть такая же проблема. Мы попробовали очистить наши папки и получить последнюю информацию. И мы также попытались изменить настройку в VS (Tools → Options → Debugging → General → Use Managed Compatibility Mode) для проверки, но это тоже не сработало. Видимо, это сработало для других. Это было прекрасно в VS 2012 года.
Любые идеи? Как я могу получить переменные уровня класса для показа в отладчике?
Изменить: Еще одна часть головоломки
Если я нахожусь над this
, я вижу, что это прозрачный прокси. Не уверен, почему это произойдет.
Другая часть:
this
относится к классу, который происходит от ContextBoundObject
. Мы делаем это, чтобы мы могли использовать перехват для ведения журнала и обработки исключений. Возможно, именно по этой причине.
И я был неправ; это не работает в VS2012. Возможно, я никогда не замечал этого раньше.
Если я попытаюсь отобразить значение в непосредственном окне, это то, что я получаю:
? this._coater.Equipment.Line.Unit.Plant.Site.SiteId Не удается получить полей или методов вызова в экземпляре типа 'Company.Mes.Core.Components.Logic.ModuleDerating.StandardDeratingComponentLogic' потому что это прокси для удаленного объекта.