У меня есть журнал ошибок пользователя с трассировкой стека, который я не до конца понимаю.Вот как это выглядит
Stack Trace:
at ...Presenters.Forms.PresenterHome.<GetCounts>b__f(IActivityItem activityItem)
at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source, Func`2 predicate)
at ...Presenters.Forms.PresenterHome.GetCounts(Int32& completeCount, Int32& incompleteCount)
at ...Presenters.Forms.PresenterHome.UpdateSummaryPanel()
.....
(я удалил начало некоторых пространств имен для защиты личности клиента)
Часть, которую я не понимаю, <GetCounts>b__f(...)
и почему она вызываетсяEnumerable.Count[...](...)
.Я предполагаю, что это как-то связано с предикатом Count
, но я не могу полностью расшифровать это.
Если это помогает, исключение составляет InvalidCastException
.Вот часть кода (слегка модифицированного для защиты личности).
void UpdateSummaryPanel()
{
int completeCount;
int incompleteCount;
GetCounts(out completeCount, out incompleteCount);
...
}
private void GetCounts(
out int completeCount,
out int incompleteCount)
{
incompleteCount = _applicationContext.ActivityItems.Count(
activityItem => activityItem.ActivityType == ActivityTypes.Foo
&& ((FooActivity) activityItem).Status != CaptureStatus.Bar);
// similar code for other count
}
Я уверен, что знаю, что является причиной ошибки (то есть, где плохой актерский состав), но что ямне действительно любопытно, что <GetCounts>b__f(...)
член в трассировке стека.