Начиная с версии 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: Добавление пустого конструктора действительно решает проблему- Я бы пометил это как ответ, но предложение пришло в комментарии, а не в ответе, поэтому я поддерживаю эти комментарии (пока не добавлен официальный ответ).