Расшифровка исключения.
От: Sharov Россия  
Дата: 12.12.19 11:58
Оценка:
Здравствуйте.

Дано:
System.NullReferenceException: Object reference not set to an instance of an object.
at Runner.<>c__DisplayClass1f.<StoreReport>b__1e(Class t) in f:\QQQ\Runner.cs:line 402
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)

В данном методе единственно место с SingleOrDef. вот это:

....
 var fn = processingResult.FileName;
 var temp1 = project.Items.SingleOrDefault(t => t.Name.Equals(fn, StringComparison.InvariantCultureIgnoreCase));
....


Правильно ли я понимаю, что речь идет об исключении в лямбде? Т.е. Runner.<>c__DisplayClass1f.<StoreReport>b__1e это сгенерированный класс для лямбды?
Т.е. скорее всего project.Items (или один из элементов) явл. null.

Заранее благодарю.
Кодом людям нужно помогать!
Re: Расшифровка исключения.
От: Vladek Россия Github
Дата: 12.12.19 12:15
Оценка: 16 (1) +1
Здравствуйте, Sharov, Вы писали:

S>Правильно ли я понимаю, что речь идет об исключении в лямбде? Т.е. Runner.<>c__DisplayClass1f.<StoreReport>b__1e это сгенерированный класс для лямбды?


Да, DisplayClass — так называются классы для лямбд (внутренний термин компилятора, не самое удачное название вместо ClosureClass).

S>Т.е. скорее всего project.Items (или один из элементов) явл. null.


Свойство Name у одного из StoreReport.
Re[2]: Расшифровка исключения.
От: Sharov Россия  
Дата: 12.12.19 12:27
Оценка:
Здравствуйте, Vladek, Вы писали:

S>>Т.е. скорее всего project.Items (или один из элементов) явл. null.

V>Свойство Name у одного из StoreReport.

Или все же t (см. выше лямбду) тоже может быть null (null.Name).
Кодом людям нужно помогать!
Re[2]: Расшифровка исключения.
От: Mihas  
Дата: 12.12.19 12:31
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Свойство Name

Какое именно свойство, как-то видно из текста исключения?
Re: Расшифровка исключения.
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.12.19 14:30
Оценка: 8 (1)
Здравствуйте, Sharov, Вы писали:

S>В данном методе единственно место с SingleOrDef. вот это:

У вас же есть имя файла и номер строки (402).
S>
S>....
S> var fn = processingResult.FileName;
S> var temp1 = project.Items.SingleOrDefault(t => t.Name.Equals(fn, StringComparison.InvariantCultureIgnoreCase));
S>....
S>


S>Правильно ли я понимаю, что речь идет об исключении в лямбде? Т.е. Runner.<>c__DisplayClass1f.<StoreReport>b__1e это сгенерированный класс для лямбды?

Да.
S>Т.е. скорее всего project.Items (или один из элементов) явл. null.
Да.
S>Заранее благодарю.
В более сложных случаях можно менять форматирование так, чтобы номер строки поточнее указывал на место исключения:
var temp1 = project.Items.SingleOrDefault(t => 
     t.
      Name.
       Equals(fn, StringComparison.InvariantCultureIgnoreCase));
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Расшифровка исключения.
От: Sharov Россия  
Дата: 12.12.19 14:52
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>В данном методе единственно место с SingleOrDef. вот это:

S>У вас же есть имя файла и номер строки (402).

Исходники с pdb разъехались.
Кодом людям нужно помогать!
Re: Расшифровка исключения.
От: Ночной Смотрящий Россия  
Дата: 12.12.19 23:42
Оценка: 110 (3)
Здравствуйте, Sharov, Вы писали:

https://github.com/benaadams/Ben.Demystifier
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.