这不是一个非常简单的问题,但希望有人遇到过。
我试图让以下事情一起工作:
- MVC2
- 流利验证
- 实体框架 4.0 (POCO)
- 温莎城堡
我几乎让一切正常。我已经实现了 Castle Windsor,并与作为 MVCContrib 一部分的 WindsorControllerFactory 提供的控制器一起工作。如本文所述,我还让 Castle 提供 FluentValidation 验证器:http: //www.jeremyskinner.co.uk/2010/02/22/using-fluentvalidation-with-an-ioc-container/
当我尝试在视图上使用 Html.EditorForModel 或 EditorFor 时,我的问题就出现了。当我尝试这样做时,我收到此错误消息:
没有组件支持服务 FluentValidation.IValidator`1[[System.Data.Entity.DynamicProxies.State_71C51A42554BA6C3CF05105DA05435AD209602C217FC4C34CA52ACEA2B06B99B, EntityFrameworkDynamicProxies-BrindleyInsurance.BusinessObjects, Version=1.0.0.0, Culture=neutral]]
这是由于在 Entity Framework 4.0 上使用了 POCO 生成。在运行时,生成的类被动态代理包装,因此可以进行跟踪和延迟加载。显然,当使用 EditorForModel 或 EditorFor 时,它会尝试要求 Windsor 为动态代理类型而不是底层真实类型创建验证器。
有谁知道我能做些什么来解决这个问题?