Я пытаюсь получить данные из CRM, используя этот API. я получаю сообщение об ошибке
Привязка среды выполнения к нулевой ссылке
всякий раз, когда я пытаюсь получить ценность от data.fullname
. Есть ли способ исправить это?
Спасибо
var response = httpClient.GetAsync("contacts?$select=fullname,emailaddress1").Result;
if (response.IsSuccessStatusCode)
{
var accounts = response.Content.ReadAsStringAsync().Result;
var jRetrieveResponse = JObject.Parse(accounts);
dynamic collContacts = JsonConvert.DeserializeObject(jRetrieveResponse.ToString());
try
{
foreach (var data in collContacts.value)
{
// You can change as per your need here
if (data.fullname.Value != null)
{
success[i] = data.fullname.Value;
}
i ++;
}
}
catch (Exception)
{
throw;
}
}
К вашему сведению: catch (Exception) { throw; }
— это то же самое поведение, что и отсутствие try/catch
в первую очередь. Также можно удалить лишний код.
Можете показать вывод json?
асинхронно с .Result;
, что делает его блокирующим. В чем проблема с асинхронным кодом?
Перед доступом к свойству data.fullname
проверьте, является ли Value
значением null.
Заменять
if (data.fullname.Value != null)
с этим
if (!String.IsNullOrWhiteSpace(data.fullname.Value))
ИЛИ заменить
try
{
foreach (var data in collContacts.value)
{
// You can change as per your need here
if (data.fullname.Value != null)
{
success[i] = data.fullname.Value;
}
i ++;
}
}
catch (Exception)
{
throw;
}
С
try
{
foreach (var data in collContacts.value)
{
success[i] = data?.fullname?.Value;
i ++;
}
}
catch (Exception)
{
throw;
}
Можете ли вы предоставить информацию о том, где именно возникает ошибка в коде и какая именно библиотека используется?