Для NHibernate
, я определенно рекомендовал бы просто дразнить NHibernate API
для модульных тестов - доверяют библиотеке, чтобы сделать правильную вещь. Если Вы хотите удостовериться, что данные на самом деле переходят к DB, сделайте интеграционный тест.
Как утверждали другие, вы можете использовать свойство DesignMode
класса Component
. Однако вы не сможете сделать это в конструкторе вашего элемента управления. Свойство DesignMode
всегда имеет значение false
в конструкторе и методах, вызываемых конструктором. Чтобы обойти это, измените код для подключения к базе данных в функции обратного вызова OnLoad ()
. Свойство DesignMode
действительно в этот момент. См. здесь для объяснения (ищите раздел DesignMode статьи).
Я только что наткнулся на эту запись в блоге , в которой описывается, как использовать System.ComponentModel . LicenseManager.UsageMode
для выполнения того же действия. В блоге описывается дополнительный недостаток свойства DesignMode
при работе с вложенными элементами управления. Судя по всему, свойство UsageMode
не имеет таких недостатков и доступно для использования в конструкторе. Я не могу лично за это поручиться, но, возможно, стоит изучить этот вопрос.
В Windows Forms?
if (!DesignMode)
{
// code that shouldn't be executed at design time
}
Как уже упоминалось, это не будет работать в конструкторе. Часто используется в событии Form.Load
.