我在我的代码中使用依赖注入(使用Ninject),认为自己做得很好,直到遇到了一个性能问题,这是由于对DI容器的理解错误造成的。似乎有很多关于如何使用DI框架的信息,但是关于不应该使用它们或如何最好地使用它们的信息并不多(至少我没有找到)。
我想写出我认为的一些最佳实践,并看看其他人是否同意我,以及其他人可以提出哪些最佳实践。
- 每个应用程序或AppDomain使用一个内核
- 仅将DI容器用于长期存在的Singleton对象,对于短暂的瞬态对象,请使用工厂(或其他方法)
- 优先使用构造函数注入而不是属性或字段注入
- 请求对象,不要构建它们
- 其他??指向好的博客文章/文章的指针??