体验Asp.Net Mvc Preview5(4)-实战ModelBinder,将Action参数实体化2011-05-09 cnblogs Leven在上篇中.我们分析了解了ModelBinder而本文将在实例中添加自己的ModelBinder,以便获得我们期望中的效果.本次我们通过一个简单的Demo来对全站的ModelBinder做一个解决方案.首先给出工程文件图:

注意一点,本例中,我的目标是给整站的Entity对象实现一个通用的,可扩展的ModelBinder引擎.由于我们要让实体对象和url字符串之间转换,为了方便,可以定义相应的方法来实现,因此定义了IEntity接口,该接口定义如下:

解释下,Fill方法是将对应的字符串转换成对象.ToString方法是将对象转换成特定的字符串.也就是说,只要某个对象实现了该接口,我们就可以将该对象方便的从url字符串和对象之间转换.这正是我们要达到的目标.另一个方式是让IEntity要实现IConvertible,不过IConvertible中方法实在太多,偷懒就不用它了.然后,在项目中,BaseEntity是一个抽象类,它只实现了IEntity中关于对象和字符串转换的方法.为了通用性,这儿用反射来实现.Fill方法实现: