#c# #visual-studio #linq #wcf #debugging
#c# #visual-studio #linq #wcf #отладка
Вопрос:
В моем коде я создаю массив объектов. Эти объекты поступают из WCF.
var people = GetPeopleFromWCF().ToArray();
Я устанавливаю точку останова после назначения массива, запускаю отладчик, код приостанавливается в соответствующей точке останова. Я захожу в окно QuickWatch и могу открыть свойства объектов массива. Когда я использую некоторые методы LINQ в окне QuickWatch, например
people.Select(x => x.DateOfBirth), results
или people.Select(x => x.DateOfBirth).ToList()
или people.Select(x => x.DateOfBirth).ToArray()
Я получил следующую ошибку:
Оценка метода System.Linq.SystemCore_EnumerableDebugView`1[Система.DateTime].get_Items() вызывает собственный метод Microsoft.Win32.SafeNativeMethods.QueryPerformanceCounter (длинный amp;). Оценка собственных методов в этом контексте не поддерживается.
Когда я набираю в окне QuickWatch people.First().DateOfBirth
— я получил правильный результат.
Я использую Microsoft Visual Studio Enterprise 2019 версии 16.7.3.
Что я делаю не так?
Комментарии:
1. 16.7.3 — это текущая версия VS 2019.
2. Как насчет того, чтобы попробовать с
ToList()
подобнымpeople.Select(x => x.DateOfBirth).ToList()
?3. Селим Йилдиз, тот же результат.
4. Я предлагаю вам сделать это с помощью Immediate Window и посмотреть, есть ли другие результаты.
5. похоже, проблема в том, как VS обрабатывает
DebuggerBrowsableAttribute
коллекцию ваших конкретных объектов (похоже, что WCF вносит свой вклад в проблему). Я знаю, что несколько похожая проблема была исправлена ранее, так что вам, возможно, повезет сообщить об этом команде разработчиков VS