Хранение нескольких значений в сеансе под одним ключом - возможный список сеансов

Я пытаюсь выяснить способ хранения нескольких значений в моей переменной Session. Вот как я делаю это сейчас:

Session[ID] = Products;
Session["type"] = type;
Session["shipping"] = shipping;
Session["condition"] = condition;
Session["minprice"] = minprice;
Session["maxprice"] = maxprice;

Я представляю, что все это хранится под одним и тем же KEY, который в моем случае является ID (сгенерированное значение GUID - например, 02df0-2k4l9), чтобы я мог получить доступ ко всем этим значениям, например:

Session[ID]["type"];
Session[ID]["condition"];

И так далее... Есть ли способ сделать это, и если да, каков наилучший способ?

4 ответа

Решение

Как насчет создания class MYCLASS со свойствами как "type","shipping"... и т.д... и хранить экземпляр этого класса в сеансе?

Если вы хотите использовать его, просто извлеките экземпляр из Session Переменная, введите его в MYCLASS и использовать это.

это решит вашу проблему?

ура

Вы можете выяснить, что ответили другие, в том числе определить конкретный класс, если он соответствует вашим требованиям. В дополнение к полученному ответу вы можете использовать словарь, в котором в качестве ключа используется строка, а в качестве значения - объект. Затем вы можете сохранить в нем свои значения и прочитать его следующим образом.

var dictionary = new Dictionary<string, object>();

dictionary["type"] = type;
dictionary["shipping"] = shipping;
dictionary["condition"] = condition;
dictionary["minprice"] = minprice;
dictionary["maxprice"] = maxprice;

Session [ID] = dictionary;

Вы можете создать список объектов из ваших значений, давайте предположим, что вы называете это Product который является классом ваших объектов:

List<Product> list = new List<Product>();
//how to store them
Session["SessionName"] = list;
//how to receive the list again 
var list = (List<Product>)Session["SessionName"];

Вы можете сделать, как создать класс, который содержит все значения

    public class ProductData
    {
        public Product objProduct { get; set; }
        public string type { get; set; }
        public string shipping { get; set; }
        public string condition { get; set; }
        public decimal minprice { get; set; }
        public decimal maxprice { get; set; }
    }

и назначить этот объект класса для сессии, как

Session[ID] = objProductsData;
Другие вопросы по тегам