我的应用程序包括多个后端组件(包括Entity Framework数据存储库层),这些组件与多个前端组件(包括Windows服务和MVC3 Web应用程序)共享。
我对Ninject绑定过程的理解是,每个包含可注入类型的程序集都应该包含一个Ninject模块,定义这些类型的默认绑定。然后,定义的模块集将被加载到使用它们的程序集的Ninject内核中。
但是,我遇到了问题,因为所需的绑定范围并不总是一致的。例如,我的MVC项目需要绑定到数据上下文"InRequestScope",而Windows服务绑定到同一个类"InThreadScope"。
显然,我可以通过将所有模块移到前端项目中来解决此问题,并为每个使用场景维护单独的模块副本,但这似乎有些笨拙,因为它在多个项目之间重复了大量模块内容。
在多层应用程序中,是否存在关于模块应在何处放置以及如何协调我的绑定差异需求的最佳实践?
感谢您的建议,
Tim
我对Ninject绑定过程的理解是,每个包含可注入类型的程序集都应该包含一个Ninject模块,定义这些类型的默认绑定。然后,定义的模块集将被加载到使用它们的程序集的Ninject内核中。
但是,我遇到了问题,因为所需的绑定范围并不总是一致的。例如,我的MVC项目需要绑定到数据上下文"InRequestScope",而Windows服务绑定到同一个类"InThreadScope"。
显然,我可以通过将所有模块移到前端项目中来解决此问题,并为每个使用场景维护单独的模块副本,但这似乎有些笨拙,因为它在多个项目之间重复了大量模块内容。
在多层应用程序中,是否存在关于模块应在何处放置以及如何协调我的绑定差异需求的最佳实践?
感谢您的建议,
Tim