У меня проблема с получением сохраненных элементов из HttpContext.Current.Items в контексте API. Я пытаюсь сохранить массив DTO для элементов, чтобы затем получить их в разных точках вызова. Я получаю DTO, и он правильно отображает 2 элемента, но это не отображение массива, который я вложил в класс. Массив заканчивается нулем. Я проверил, что массив не является нулевым, проверив длину во время хранения. Я также проверил, что массив фактически равен нулю, когда я пытаюсь получить его. Сообщений об ошибках не было, содержимое, которое я ожидаю от API, только что возвращается.
Массив следующего класса сохраняется, а массив целых чисел "ab_ids" - это то, что присваивается нуль когда я go чтобы получить его:
public class AreaOfResponsibilityDTO
{
public int site_id { get; set; }
public int[] ab_ids { get; set; }
public bool? all_plans { get; set; }
}
Вот где я его храню:
AreaOfResponsibilityDTO[] user_aor = CompileUserAreaOfResponsibility(user);
HttpContext.Current.Items.Add("current_user_aor", user_aor);
Я убедился, что список целых чисел заполнен в большинстве DTO перед хранением.
Затем я нахожусь в контроллере API, но в том же контексте, извлекая его с помощью следующего и проверяя присвоение "ab_ids". В журнале все массивы int возвращаются как «false» (null):
AreaOfResponsibilityDTO[] AORs = HttpContext.Current.Items["current_user_aor"] as AreaOfResponsibilityDTO[];
foreach (AreaOfResponsibilityDTO AOR in AORs)
{
errorLog.WarnFormat("AOR MANAGER RETRIEVAL - ABs: {0}", AOR.ab_id != null);
}
Я попытался узнать больше о методе хранения в Items, если мне даже разрешено хранить DTO, но я не нашел никакой информации о том, что не могу. Если у кого-то есть вклад, я буду искренне признателен.