Это не очень простой вопрос, но, надеюсь, кто-то столкнулся с ним.
Я пытаюсь заставить следующие вещи работать вместе:
- MVC2
- FluentValidation
- Entity Framework 4.0 (POCO)
- Замок Виндзор
У меня все получилось. Я реализовал Castle Windsor и работал с контроллерами, обслуживаемыми WindsorControllerFactory, которая является частью MVCContrib. У меня также есть Castle, обслуживающий валидаторы FluentValidation, как описано в этой статье: http://www.jeremyskinner.co.uk/2010/02/22/using-fluentvalidation-with-an-ioc-container/
Моя проблема возникает, когда я пытаюсь использовать Html.EditorForModel или EditorFor для представления. Когда я пытаюсь сделать это, я получаю это сообщение об ошибке:
Нет компонента для поддержки службы. 1020 *
Это связано с использованием генерации POCO в Entity Framework 4.0. Во время выполнения сгенерированные классы оборачиваются динамическим прокси, поэтому может происходить отслеживание и отложенная загрузка. По-видимому, при использовании EditorForModel или EditorFor он пытается попросить Windsor создать валидатор для динамического типа прокси вместо базового реального типа.
Кто-нибудь знает, что я могу сделать, чтобы решить эту проблему?