Linq to sql 如何获得Castle MonoRail';s DataBinder/SmartDispatcherController是否要针对包含接口属性的类型进行绑定?
我们正在使用接口来表示域模型中的实体类。通过使用LinqToSql,我们有了这些的具体实现。我们已经向每个LinqToSql类添加了一个工厂方法,我们的服务层使用它来实例化一个新实体(注意,与控制器的DataBind属性相反) MonoRail的默认DataBinder实现将忽略定义为接口的属性 理想情况下,我们不想在MonoRail中实例化我们的数据层类-接口的全部要点是分离这些关注点 此外,我们并不想创建另一组非LinqToSql具体类,它们的唯一任务是在层之间进行转换Linq to sql 如何获得Castle MonoRail';s DataBinder/SmartDispatcherController是否要针对包含接口属性的类型进行绑定?,linq-to-sql,castle-monorail,databinder,Linq To Sql,Castle Monorail,Databinder,我们正在使用接口来表示域模型中的实体类。通过使用LinqToSql,我们有了这些的具体实现。我们已经向每个LinqToSql类添加了一个工厂方法,我们的服务层使用它来实例化一个新实体(注意,与控制器的DataBind属性相反) MonoRail的默认DataBinder实现将忽略定义为接口的属性 理想情况下,我们不想在MonoRail中实例化我们的数据层类-接口的全部要点是分离这些关注点 此外,我们并不想创建另一组非LinqToSql具体类,它们的唯一任务是在层之间进行转换 这里漫长的一天终于结
这里漫长的一天终于结束了;请有人发发发慈悲,指出IDataBinder中我们应该用自己的实现来重载的部分,或者暗示我们可能尝试的其他方法?;-) 您应该看看IParameterBinder。看看正如Ken所指出的,您的想法可以通过自定义IParameterBinder实现 解决方案是使用IOC:
- 从窗体的接口解析窗体的具体实例
- 然后使用IDataBinder将实例绑定到请求参数
- 为接口生成dto代理
- 然后使用IDataBinder将dto代理实例绑定到请求参数
- 不公开(哼)
- 有办法
- 或事件
- 或只读属性
- 或仅设置属性
- 控制器端是表单/命令的Http映射和第一级数据验证
- 应用层服务是表单/命令的业务验证和处理