Joh*_*ohn 3 dependency-injection asp.net-core
我看到ServiceProvder.GetService<ApplicationDbCotnext>()defaut 模板用于 初始化DbContext,但当你在静态方法中,我不知道如何获得DbContext,因为没有ServiceProvider.有办法搞定ServiceProvider吗?
嗯,首先,这与asp.net-core本身无关.这更多与依赖注入的工作方式有关.你必须问问自己为什么你的方法是静态的.这真的有必要吗?
如果你无法摆脱静态方法,你可能会一路走下去并引入另一种反模式,即服务定位器模式.简而言之:在Startup类中,您将ServiceProvider的引用放在静态类的静态属性(例如,调用它为"ServiceProviderSingleton")中(例如"ServiceProviderProvider").这样您就可以调用"ServiceProviderProvider.ServiceProviderSingleton.GetService()".
再次,我建议给你的整体设计一个批判的外观.但如果这是你需要/想要的,那么我希望它有所帮助.
| 归档时间: |
|
| 查看次数: |
8043 次 |
| 最近记录: |