Jay*_*Jay 5 c# dependency-injection unity-container
我使用unity容器来解决应用程序中的依赖项.
依赖项及其依赖项(等等)在app.config中注册,因为我需要能够更改应用程序在生产中的行为方式.
有时候,错过了依赖项的类型注册,只有在应用程序的生命周期中解析了类型的实例时才会出现这种情况,这意味着可能存在只能在集成测试期间获取的问题 - 这不是理想.
我希望能够以编程方式检查(可能作为CI构建过程的一部分)已正确进行统一类型注册.我的意思是,如果我解析一个类型的实例,我可以确信该类型的依赖项(通过构造函数注入)也已注册并将被解析.
我只需要检查默认的构建配置,在这里不考虑在实时站点上进行的更改.另外 - 我不想使用硬编码的统一注册.
我现在想到这一点的唯一方法是解析unity配置文件并尝试解析找到的类型的每个实例...
是否有更简单的方法来验证统一注册是否全部存在?
关于
我希望能够以编程方式检查(也许作为 CI 构建过程的一部分)统一类型注册是否正确。我的意思是,如果我解析类型的实例,我可以确信该类型的依赖项(通过构造函数注入)也已注册并将被解析。
我们在一个项目中遇到了同样的情况,我们最终编写了集成测试并读取了 Unity.config,然后查找作为字符串的注册类型对象。与下面描述的方法非常相似 https://blogs.msdn.microsoft.com/miah/2009/04/03/testing-your-unity-xml-configuration/
这样做的问题是您必须维护注册和测试,但这是验证所有类型是否正确注册的唯一方法。
简单地将 xml 与预期值进行比较比重新注册所有类型(基于您的配置)并在测试中解析它们更有效。