Цикл через сеанс DeserializeObject в .NET Core

#asp.net-core #session

#asp.net-core #сеанс

Вопрос:

Я пытаюсь выполнить цикл через объект сеанса DeserializeObject, и у меня возникает ошибка

CustomerBasket’ не содержит определения для ‘ToList’, и не удалось найти доступный метод расширения ‘ToList’, принимающий первый аргумент типа ‘CustomerBasket’ (вам не хватает директивы using или ссылки на сборку?)

Класс корзины клиентов

 public class CustomerBasket
{
    public int Id { get; set; }
    public string Reference { get; set; }
    public string Description { get; set; }
    [DisplayName("Prix Unit")]
    public string ItemPriceCfa { get; set; }
    public string DiscountItemPriceCfa { get; set; }
    public int? Quantity { get; set; }
    [DisplayName("Prix Total")]
    public string TotalPrice { get; set; }
    public int OrderId { get; set; }
}
  

Добавить элемент в класс

 var orderdetailstEntry = new List<CustomerBasket> 
{
   new CustomerBasket {Id = itemId, Quantity=qty, TotalPrice= itemvalue.ToString(),
   Reference=basket.Reference,Description=basket.Description, I 
   temPriceCfa=basket.ItemSalePrice},
};
  

Передача списка в сеанс

 HttpContext.Session.SetString("ShoppingCard", JsonConvert.SerializeObject(orderdetailstEntry));
  

У меня возникает ошибка здесь при попытке выполнить цикл через объект сеанса DeserializeObject Я думаю, что мне чего-то не хватает, мне нужно преобразовать сеанс в список, но я не знаю, как это сделать

 var getShoppingCard = JsonConvert.DeserializeObject<CustomerBasket>(HttpContext.Session.GetString("ShoppingCard")) ;

foreach (var memorycount in getShoppingCard.ToList())
{
   getShoppingCard.Where(w => w.Id == memorycount.Id).ToList().ForEach(s => s.OrderId = orderId);

   totalorder = totalorder   Convert.ToInt32(memorycount.TotalPrice);
}
  

Ответ №1:

Вы десериализуете свой объект в CustomerBasket вместо List<CustomerBasket> вот почему ToList расширение недоступно.

 var getShoppingCard = JsonConvert.DeserializeObject<List<CustomerBasket>>(HttpContext.Session.GetString("ShoppingCard"));