Как настроить Fluent NHibernate для использования реализаций IUserType с внедрением конструктора IoC (непустые конструкторы) - PullRequest
1 голос
/ 07 января 2011

Начиная с версии 2.1, NHibernate поддерживает внедрение конструктора для IUserTypes через контейнер IoC (предоставляется через параметр конфигурации ByteCodeProvider).

Однако, когда я пытаюсь заставить это работать через конфигурацию Fluent NHibernate (не автоматическое сопоставление), когда я строю свою конфигурацию, я получаю исключение, сообщающее, что один из моих объектов (в данном случае пользовательский ICompositeUserType) не имеет пустого конструктора по умолчанию.

Я проследил это исключение до вызова Activator.CreateInstance () в FluentNHibernate.Mapping.

Поэтому я предполагаю, что мой вопрос заключается в следующем: возможно ли заставить это работать с Fluent NHibernate, или мне нужно отказаться от конфигурации Fluent NH и вернуться к встроенной программной конфигурации NHibernate??

Ссылки на сообщения в блоге об этой функции:

ОБНОВЛЕНИЕ: похоже, проблема в обработке FluentNHibernate пользовательских реализаций ICompositeUserType.Я изменил свои Composite User Types на IUserType (который, вероятно, лучше подходит для того, чем на самом деле были классы), и похоже, что Fluent NHibernate теперь сотрудничает.

ОБНОВЛЕНИЕ # 2: Добавление пустого конструктора действительно решает проблему- Я бы пометил это как ответ, но предложение пришло в комментарии, а не в ответе, поэтому я поддерживаю эти комментарии (пока не добавлен официальный ответ).

1 Ответ

0 голосов
/ 07 января 2011

Имейте в виду, что все, что делает Fluent NHibernate, - это создают ту же структуру объекта конфигурации, что и при использовании NHibernate XML.Как вы пытаетесь установить ByteCodeProvider через Fluent NHibernate?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...