有几个关于ninject最新版本(2.2.1.4)的问题。 正在尝试将Linq2sql DataContext绑定到具体实现InRequestScope (在类库项目中) Bind<DataContext>().To<MoneywatchDataContext>() 但找不到InRequestScope方法 结束了这样做, Bind<DataContext>().To<MoneywatchDataContext>().InScope(ctx => HttpContext.Current) 只是想知道是否: 如果这将performance完全像InRequestScope方法。 这将保证,当我的HTTContext.Current是GC'ed底层的DataCotext也将被处置。
任何人都可以告诉我,如果我可以注册一个已经创build的Ninject类的实例,以便它将使用这个实例,每次它需要注入? 我想你可以称之为单身,但我已经创build了实例。 所有文档都指向创build一个类的新实例。
我的问题的简短版本: 任何人都可以指向我一些很好的,详细的来源,我可以学习如何使用NUnit,Ninject 2和Moq在我的MVC 3应用程序中实现testing吗? 任何人都可以帮助我澄清Controller-Repository解耦,嘲笑和dependency injection是如何协同工作的? 我的问题的更长版本: 我在做什么 我目前正在开始创build一个MVC 3应用程序,它将使用entity framework4,采用数据库优先的方法。 我想这样做是正确的,所以我试图devise类,图层等,是高度可testing的。 但是,对于unit testing或集成testing,除了对其的理解之外,我几乎没有任何经验。 经过大量的研究,我已经决定使用 NUnit作为我的testing框架 Ninject 2作为我的dependency injection框架 Moq作为我的嘲笑框架。 我知道哪个框架是最好的,等等,可以进入这个话题,但是在这一点上,我真的不知道它是否足以形成一个坚实的观点。 所以,我只是决定采取这些免费的解决scheme,似乎很受欢迎,维护良好。 到目前为止,我学到了什么 我花了一些时间来研究这些东西,阅读资源,例如: 在ASP.NET MVC应用程序中实现工作模式的存储库和单元 构build可testing的ASP.NET MVC应用程序 NerdDinner第12步:unit testing 在Entity Framework 4.0中使用存储库和工作单元模式 从这些资源中,我已经设法解决了需要存储库模式的问题,这些模式需要存储库接口,以解耦我的控制器和数据访问逻辑。 我已经将这些写入了我的应用程序,但是我承认我并不清楚整个系统的机制,我是否正在为支持嘲弄或dependency injection而进行这种解耦。 因此,我当然不会介意从你们这里听到这个。 任何澄清,我可以得到这个东西将帮助我在这一点上。 事情变得泥泞的地方 我以为我很好地掌握了这个东西,直到我开始尝试围绕Ninject进行打包,正如上面引用的“ 构build可testing的ASP.NET MVC应用程序”中所述。 具体来说,在作者开始描述服务层的实现的时候,我已经完全迷失了,大约在文档的一半。 无论如何,我现在正在寻找更多的资源来学习,试图对这个东西有不同的看法,直到它开始对我有意义。 总结所有这一切,把它归结为具体的问题,我想知道以下几点: 任何人都可以指向我一些很好的,详细的来源,我可以学习如何使用NUnit,Ninject 2和Moq在我的MVC 3应用程序中实现testing吗? 任何人都可以帮助我澄清Controller-Repository解耦,嘲笑和dependency injection是如何协同工作的? 编辑: 我刚刚在Github上发现了Ninject官方wiki ,所以我将开始研究这个,看看它是否开始为我澄清事情。 但是,我仍然非常感兴趣的SO社区的想法:)