Исправьте опечатку (и)
func dequeueReusableCell<T: UICollectionViewCell>( ...
Аннотируйте тип и удалите приведение типа
let cell : TacoCell = collectionView.dequeueReusableCell(forIndexPath: indexPath)
Необходимо смочь использовать HttpContext. Текущий. Сессия
В то время как да я соглашаюсь, что Вы не должны сильно связывать свою Бизнес-логику DAL или и т.д. блоки к сессии ASP.NET. Существует много допустимых случаев для доступа к Контексту HTTP за пределами веб-проекта.
Веб-элементы управления являются прочертовским из лучших примеров, допускающие повторное использование http модули и т.д. и т.д...
Теперь одна опция, если Вы хотите иметь свое получение по запросу DLL материал от Сессии, состоит в том, чтобы абстрагировать сессию. Таким образом, Вы могли определить интерфейс как IStorage, что Ваша библиотека будет знать, как использовать. Затем Вы можете иметь класс SessionStorage или MemoryStorage и использовать МОК для введения appropiate класса в классы библиотеки. Это дает Вам свободу кодировать его, как Вы хотели, чтобы это было кодировано, не связывая Ваш код с Сессией. О, и еще одно преимущество, если сделано правильно может использоваться для не связи кода с сессией в сети также.
Можно всегда использовать HttpContext. Текущий. Сессия в Вашем DLL, но это рассматривают как плохую практику. Лучший подход должен был бы передать значения, сохраненные в словаре сессии к Вашему DLL вместо него ссылающийся на сессию. Другая выгода, которую Вы получите, - то, что код в Вашем DLL не будет связан со временем выполнения ASP.NET значение, что будет легче протестировать.
Пока блок загружается в пределах Сессии, он будет иметь доступ.
Хотя этот тип плотного соединения действительно не рекомендуется.
Как сказано другими, можно всегда использовать HttpContext. Текущий. Сессия в Вашем DLL, я предполагаю, что это - Ваш BAL, но необходимо быть действительно осторожными. Что, если Ваш DLL позже используется сервисом окон или некоторым другим приложением, которое не имеет HTTPContext? Каждый раз, когда я сделал это, это всегда было в свойстве, получают метод, где я переношу попытку получить доступ к HttpContext. Текущий. Сессия в попытке ловит блок и если что-нибудь идет не так, как надо, я повторно вытягиваю необходимые данные из дб.