Странное исключение MethodNotFound при переименовании свойства - связано с asp.net / веб-формами / fluentnhibernate и visual studio - PullRequest
0 голосов
/ 04 июня 2009

У меня есть локальный веб-сайт, который я запускаю через внутренний веб-сервер разработки Visual Studio 2008 (через кнопку запуска / компиляции).

У меня есть внешняя библиотека, на которую есть ссылка на странице этого веб-сайта и которая находится в папке "bin" веб-сайта.

Недавно я изменил имя свойства класса внутри этой библиотеки (переименовав его из «ValidFrom» в «VisibleFrom»), перекомпилировал его dll и переписал исходный dll внутри папки bin.

Этот класс сопоставлен с FluentNHibernate, я также изменил сопоставления и перекомпилировал / повторно развернул библиотеку.

Когда я пытаюсь запустить сайт и перейти на страницу, где используется библиотека, я получаю исключение MethodNotFound для метода get_ValidFrom , связанного с вызовом конфигурации FluentNHibernate , Это должно быть get_VisibleFrom сейчас!

Теперь я перенастроил свой NHibernate SessionProvider таким образом, чтобы он генерировал новую Конфигурацию для NHibernate при каждом вызове и не извлекал ее из сущности Http Session, как это было раньше, потому что я полагал, что здесь может быть проблема. *

Однако я все еще получаю исключение. Затем я удалил содержимое папки Temporary ASP.NET ... но я все еще получаю сообщение об ошибке.

Где хранится сгенерированная схема для NHibernate при использовании FluentNHibernate?

Кто-нибудь знает, где еще это может быть как-то кэшировано?

Спасибо

1 Ответ

0 голосов
/ 05 июня 2009

FNH не кэширует схему, она генерируется на лету, когда вы вызываете Fluently.Configure(), и схема передается непосредственно в объект NHibernate Configuration, который используется для построения ISessionFactory.

Попробуйте очистить все скомпилированные объекты / библиотеки / исполняемые файлы, удалив ссылку на вашу библиотеку из всех проектов, которые ее используют, добавьте ее обратно, а затем перекомпилируйте все. Также проверьте весь свой код на наличие «магических строк», которые могут ссылаться на это свойство или вызывать ссылки на него по старому имени.

Если это не сработает, было бы полезно увидеть трассировку стека, чтобы получить представление о том, что вызывается откуда.

...