我对MVC4网站进行了大量投资,该网站拥有大量自定义模型绑定器,价值提供商等。
我现在想要向站点添加一些WebAPI控制器并重用一些MVC4组件。似乎MVC和WebAPI中存在许多并行概念(例如模型绑定),但基类和接口存在于不同的名称空间中,这意味着类型不可互换。
是否存在使MVC类适应其WebAPI等价物的既定模式?具体而言,我有兴趣将System.Web.Mvc.IModelBinder
重新用作System.Web.Http.ModelBinding.IModelBinder
。
答案 0 :(得分:2)
问题不在于接口,而在于两个模型绑定器使用的模型绑定规则完全不同并且基于不同的概念。这就是为什么接口在两个不同的命名空间中定义,否则它们将使用完全相同的接口。两个接口之间存在并行性,但它们代表两种不同的概念。换句话说,语法类似,但语义不同,因此您不能在它们之间进行一对一的映射