Я знаю, что это очень много спрашивается, и я прочитал похожие записи, но я не могу понять свою ошибку. Я получаю ссылку на объект, не установленную в экземпляр объектной ошибки с файлом .aspx.cs.Ссылка на объект не установлена в экземпляр объекта - C# Ошибка
Вот фрагмент моего кода ... ошибка вызывается линией String.IsNullOrEmpty(accountInCrm.ParentAccountId.Id.ToString())
.
Примечание: контекст объявлен далее в моем коде, а enduserDropdown - это элемент управления, который я создал с помощью ASP.
foreach (var accountInCrm in context.AccountSet.ToList())
{
if (accountInCrm.StateCode == 0)
{
if (String.IsNullOrEmpty(accountInCrm.ParentAccountId.Id.ToString()))
{
enduserDropdown.Items.Add(new ListItem(accountInCrm.Name, accountInCrm.Id.ToString()));
}
Я знаю, что accountInCrm не пусто и если я просто удалить String.IsNullOrEmpty Если оператор все хорошо, и значения добавляются в моем раскрывающемся списке.
Любые идеи, что может быть причиной этого?
EDIT: ------------------
foreach (var accountInCrm in context.AccountSet.ToList())
{
if (accountInCrm.StateCode == 0)
{
if (accountInCrm.ParentAccountId != null)
{
enduserDropdown.Items.Add(new ListItem("test 2", accountInCrm.Id.ToString()));
}
else
{
enduserDropdown.Items.Add(new ListItem("test 3", accountInCrm.Id.ToString()));
}
}
}
EDIT 2: ------------- извлечения данных из CRM
var context = new XrmServiceContext();
foreach (var accountInCrm in context.AccountSet.ToList())
Петля проходит через каждую учетную запись в CRM. Я точно знаю, что не все учетные записи в CRM имеют пустой идентификатор родительской учетной записи, некоторые делают, но большинство нет.
Предположим, что идентификатор является только строковым значением. Похоже, что ParentAccountID имеет значение null – Steve
Просто fyi, это, вероятно, наиболее распространенное исключение в C#. Когда вы его получите, есть несколько простых шагов для его решения. Во-первых, найдите, какая строка вызывает ошибку, а затем найдите доступ к свойствам/вызову метода в любых ссылках поблизости, если какая-либо из ваших ссылок не проверяется на предмет недействительности до вызова доступа или метода, тогда эта строка может вызвать исключение NullReferenceException (то, re получение). Я думаю, что в SO должно быть руководство по разрешению NullReferenceExceptions, просто случайная мысль, поскольку этот комментарий не является материалом ответа, но более ценным, чем фактическое решение. – evanmcdonnal
Проблема, вероятно, заключается в том, как вы извлекаете данные из CRM. Поэтому вы должны, вероятно, показать нам код, который это делает. –