tri*_*ris 6 c# simple-injector
调用container.Verify()
生产代码是最佳做法吗?我想要搬到:
#IF Debug
container.Verify();
#ENDIF
Run Code Online (Sandbox Code Playgroud)
我没有任何真正的理由做出改变,只是好奇一般共识/最佳实践是什么.
无论是否有用,Verify
都可以进行辩论.早在2011年,Mark Seemann确实认为这种方法几乎毫无价值.我的观点是,呼唤有真正的价值Verify
,但我理解马克的观点并同意单独呼叫Verify
通常是不够的.这就是为什么在Simple Injector维基中有关验证容器配置的明确指导,可以保证您的DI配置可验证.
但是,使用Simple Injector,Verify
除了测试它是否可以创建对象图之外,还有更多功能.致电Verify
将启动Simple Injector的诊断服务,该服务搜索非常常见但有时非常难以发现的配置错误(Mark在撰写该文章期间无法使用的功能).
一般来说,我的建议是container.Verify
尽可能长时间调用您的生产代码.始终在启动时调用它,包括调试和发布版本,暂存环境和生产环境.
随着应用程序变得越来越大,container.Verify
在启动期间调用会变得更加耗时.某些类型的应用程序对此比其他类型更敏感.对于服务器应用程序,通常可以有更长的启动时间,而桌面和移动电话应用程序必须更快地启动.
一旦你进入调用Verify
需要花费太多时间的位置 - 但只有那时 - 你应该删除调用Verify
,但至少仍然有一个调用的单元/集成测试container.Verify
.我发现Verify
在编译器指令中没有问题(正如你在你的问题中所做的那样),但是再次注意IMO你应该尽可能地推迟删除Verify
你的启动路径中的调用.
归档时间: |
|
查看次数: |
1879 次 |
最近记录: |