Я пытался реализовать решение, подобное тому, что Айенде публикует в своей статье MSDN, Создание настольного приложения для работы с NHibernate . К счастью, Скулетц написал аналогичную статью, в которой рассказывает о том, чего я пытаюсь достичь, с помощью его 3-дневного сообщения в блоге о фокусах перехватчика NHibernate ( 1 , 2 , 3 ). У меня возникают проблемы с вызовом NHibernate параметризованного конструктора моего объекта POCO при создании экземпляра объекта.
Когда я удаляю защищенный конструктор без параметров, NHibernate жалуется с InvalidProxyTypeException: «Следующие типы не могут использоваться в качестве прокси:
YourNamespace.YourClass: type должен иметь видимый (открытый или защищенный) конструктор без аргументов ". Если я добавлю защищенный конструктор по умолчанию, NHibernate больше не будет жаловаться, но зависимость (в перегруженном конструкторе) никогда не вызывается, вызывая приложение чтобы исключить NullReferenceException во время выполнения, когда зависимость не удовлетворена.
public MyClass
{
IRequiredDependency dependency;
public MyClass(IRequiredDependency dependency)
{
this.dependency = dependency;
}
protected MyClass() {}
}
Я просто не могу заставить NHibernate вызывать перегруженный конструктор. Есть мысли?