其中一个应用程序具有以下设计:
表示层: 1)MVC 4(包含对WCF服务的引用)和使用ninject DI进行控制器构造函数注入 - 其中接口和实现都在同一个项目上 - MVC。
BAL和DAL 2)WCF服务
转换为以下设计:
1)MVC(没有服务引用和删除的ninject,只包含注入控制器的接口) 2)新的库项目(包含MVC项目的参考和MVC应用程序中存在的接口的实现),并为DI添加了ninject模块。
3)WCF服务
问题: 当我执行第一个设计方法时,它工作正常,我发现,控制器注入接口实例,但是,当我为WCF服务引用松散耦合并添加到新的单独项目并将每个接口移动到该单独的项目然后,执行时MVC应用程序,它给我以下错误:
System.MissingMethodException: No parameterless constructor defined for this object.
由于ninject DI,这看起来像是问题。
注意:在MVC项目中,没有NinjectWebCommon
和ServiceModule
都被移动到新添加的类库项目中。注入控制器的接口存在于MVC项目中,其实现存在于新增的类库项目中。
请告诉我这里有什么问题。
谢谢你