2010-08-25 2 views
3

Я использовал NHibernate 2.1.2, FluentNhibernate 1.1 и SQLite, сконфигурированные с использованием памяти (для целей тестирования).Почему Nhibernate Interceptor не называется?

Целью перехватчика является предоставление объекта прокси, возвращаемого критериями создания. Я думаю, что я уже правильно зарегистрировал перехватчик для конфигурации, но создать критерии возвращает только голый объект вместо прокси. Я попытался поставить точку останова на метод Interceptor Instantiate, но точка останова не попала.

Итак, мой вопрос: как я могу узнать, правильно ли настроен мой перехватчик или нет? Могу ли я отлаживать использование журнала?

У меня возникла проблема с использованием конфигурации в модульном тестировании Visual Studio.

+0

Вы использовали режим breakpoint + debug, чтобы узнать, вызван ли ваш перехватчик? –

+0

Да, у меня есть, но процесс не остановится. – bonjorno

ответ

2

ОК, я провел 12 часов из-за тривиальной проблемы.

Перехватчик не работает дляISession.Get

здесь является то, что я ошибся

public UserModel Save(UserModel user) 
{ 
    UserModel result = null; 
    using (ITransaction transaction = session.BeginTransaction()) 
    { 
     var id = session.Save(user); 
     //here i expect a proxied UserModel will returned 
     result = session.Get<UserModel>(id); 
     transaction.Commit(); 
    } 
    return result; 
} 

я понял, что мой перехватчик прекрасно работать после того, как я решил просто оставить его и начать писать блок test для метода GetUsers, который использует API критериев.

FYI, если вы заинтересованы в перехватчике NHibernate, я нашел его here.

Смежные вопросы