1
7
经考虑意见后编辑: 有时您仍然希望或需要使用静态类,而不是通过Unity级联所有内容,原因有很多。 如果静态类依赖于另一个类,您希望通过Unity配置进行配置/交换,我更喜欢使用如中所述的工厂模式 How to resolve dependency in static class with Unity? 或者在需要时简单地分配一个函数来解决依赖关系,而不是从静态类中引用Container。一个优点是所有Unity配置都可以在同一个地方。 在您的情况下,它可能看起来是这样的:
在Unity配置中添加以下内容:
|
2
6
当通过Unity解析类时,Unity注入依赖项。无法创建静态类,因此Unity无法注入依赖项。
使用Unity来解析伪单例类,而不是使用静态类(
你必须通过团结来解决第二类问题。
当你需要ClassTwo时:
在ClassTwo中具有配置:
但这不是一个很好的解决方案,我认为你的问题在于DI的系统论。您需要从应用程序的顶层类级联依赖项。以明确的方式解析顶层类。(
换句话说,您不需要静态类,而是将类的同一实例注入到需要的其他类中。 |