Для полного разделения / развязки я реализовал DAL в сборке, которая просто копируется через событие после сборки в папку BIN веб-сайта.Затем на веб-сайте Application Start загружается эта сборка через System.Reflection.Assembly.LoadFile
.Опять же, используя отражение, я создаю пару экземпляров из классов в этой сборке.Затем я сохраняю ссылку на эти экземпляры в сеансе (HttpContext.Current.Items)
Позже, когда я пытаюсь получить объект, сохраненный в сеансе, я не могу привести их к их собственным типам (изначально пробовал интерфейсы, но для отладки пытался привести их к собственным типам), получая эту ошибку:
[A]DAL_QSYSCamper.NHibernateSessionBuilder cannot be cast to [B]
DAL_QSYSCamper.NHibernateSessionBuilder. Type A originates from 'DAL_QSYSCamper,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'Default' at
location 'C:\Users\myusername\AppData\Local\Temp\Temporary ASP.NET
Files\root\ad6e8bff\70fa2384\assembly\dl3\aaf7a5b0\84f01b09_b10acb01\DAL_QSYSCamper.DLL'.
Type B originates from 'DAL_QSYSCamper, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null' in the context 'LoadNeither' at
location 'C:\Users\myusername\Documents\Projects\QSYS\Deleteme\UI\MVCClient\bin\DAL_QSYSCa
mper.DLL'.
Это происходит при отладке в VS - VS удается остановить в исходном проекте DAL, хотя язагружен из сборки, и проект не ссылается на проект веб-сайта (они оба находятся в решении).
Я понимаю ошибку, но не понимаю, как и почему выполняется сборкаиспользуется / загружается из двух мест - я загружаю его только один раз из файла, и нет ссылки на проект.
Следует отметить, что я также использую Windsor для DI.Объект, который пытается извлечь объект из сеанса, - это A) из класса из этой сборки DAL;Б) вводится в класс веб-сайта Виндзор.Я буду работать над добавлением примера кода к этому вопросу, но хотел бы выложить его на тот случай, если станет очевидно, что я делаю неправильно.