Как обрабатывать предупреждение о назначении нулевой ссылки в веб-API ASP.NET Core при доступе к свойствам, допускающим C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как обрабатывать предупреждение о назначении нулевой ссылки в веб-API ASP.NET Core при доступе к свойствам, допускающим

Сообщение Anonymous »

У меня есть конечная точка:

Код: Выделить всё

http://localhost:5235/ProductsEF/GetSubstances/ApapExtra
где я получаю результат, например /ApapExtra:

Код: Выделить всё

{
"productId": 4,
"productName": "ApapExtra",
"substance1": "Paracetamolum",
"substance2": "Coffeinum",
"substance3": null,
"substance4": null
}
И у меня есть еще одна конечная точка:

Код: Выделить всё

http://localhost:5235/SubstancesEF/GetSubstanceDataByName/Paracetamolum
откуда я беру данные, например /парацетамол:

Код: Выделить всё

{
"substanceId": 4,
"name": "Paracetamolum",
"effect": "Analgesic"
}
Я хочу объединить их в один метод. Я хочу создать метод:

Код: Выделить всё

[HttpGet("GetSubstances/{ProductName}")]
public Product GetSubstancesFromProduct(string ProductName)
{
Product product = _productRepository.GetProductDataByName(ProductName);

if (product == null)
{
throw new Exception("Could not find the product!");
}

List substanceInfos = new List();

// string[] substanceNames = new string[] { product.Substance1, product.Substance2, product.Substance3, product.Substance4 };
Console.WriteLine($"ProductName: {product.ProductName}");

return product;
}
Эта строка:

Код: Выделить всё

Product product = _productRepository.GetProductDataByName(ProductName);
ведёт к первой конечной точке. Логика, которую я хочу реализовать:
  • Отправить запрос на эту конечную точку с названием лекарства.
  • Лекарственное средство разворачивается на вещества. .
  • Для всех веществ отправляется запрос на получение информации о веществе.
  • Возвращается список информации о веществах.
  • Для всех веществ отправляется запрос на получение информации о веществе.
  • Возвращается список информации о веществах.
  • Для всех веществ отправляется запрос на получение информации о веществе.
  • Возвращается список информации о веществах.
  • Для всех веществ отправляется запрос на получение информации о веществе.
  • Возвращается список информации о веществе.
    li>
Итак, я отправил запрос /ApapExtra и хочу получить:

Код: Выделить всё

{
"substanceId": 4,
"name": "Paracetamolum",
"effect": "Analgesic"
}
{
"substanceId": 4,
"name": "Coffeinum",
"effect": "Analgesic"
}
потому что он состоит из этих ингредиентов.
Проблема в следующем:

Код: Выделить всё

string[] substanceNames = new string[] { product.Substance1, product.Substance2, product.Substance3, product.Substance4 };
потому что я получаю:

Возможное назначение нулевой ссылки.CS8601

хотя у меня в моделях есть ? рядом с названиями полей.
Как решить эту проблему? Или как решить эту проблему лучше?

Подробнее здесь: https://stackoverflow.com/questions/784 ... i-when-acc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»