Фон
В настоящее время у меня есть метод. NET Core 3.1 WebAPI, который асинхронно взаимодействует со службой SOAP. Когда я запускаю свою задачу и получаю ответ, она обычно работает, но иногда служба SOAP отправляет 200 Ok () с пустым ответом. Это сеет хао c для меня. Как я могу проверить, что базовый Result / GetSomeFancyDataResult имеет значение null?
Поскольку GetSomeFancyDataResult является результатом в «Результате», я получаю действительный «Результат», но «GetSomeFancyDataResult» является нулевым, и когда я пытаюсь проверить его на нулевое значение, я получаю ошибку, что это не создан.
Пример кода
// make an async request to legacy SOAP service
var client = new mySoapService.serviceClient();
var request = new mySoapService.GetSomeFancyDataRequest(1, "abc", 234);
var task = Task.Run(async () => await client.GetSomeFancyDataAsync(request));
// how to check if GetSomeFancyDataResult exists ?
if (task.Result.Equals(null) || task.Result.GetSomeFancyDataResult.Equals(null))
return null; // exit here, abort!
// process the results when data is found in the result ??
var results = task.Result.GetSomeFancyData.Select(result => result.MyFancyFieldOne);
Моя проблема
Моя проблема в том, что это не работает должным образом ...
// how to check if GetSomeFancyDataResult exists ?
if (task.Result.Equals(null) || task.Result.GetSomeFancyDataResult.Equals(null))
return null; // exit here, abort!
Может быть, я смотрел на это слишком долго. Что я здесь пропускаю? Я искал SO и interwebs и не нашел, как проверить это для нуля правильно. Помощь