我已经使用简单注入器的依赖注入。现在我正在尝试实施财产注入,但help document没有什么帮助。使用简单注射器进行静态类别的注入
任何人都可以用简单的例子解释属性注入如何工作?
我想在一个Web Project的Utility类中使用它,而不是在控制器中使用它。该类方法是静态的。
我已经使用简单注入器的依赖注入。现在我正在尝试实施财产注入,但help document没有什么帮助。使用简单注射器进行静态类别的注入
任何人都可以用简单的例子解释属性注入如何工作?
我想在一个Web Project的Utility类中使用它,而不是在控制器中使用它。该类方法是静态的。
该文档没有解释如何注入静态属性,因为这在简单注入器中不受支持。
静态属性通常是一个坏主意,因为它们妨碍可测试性,导致Temporal Coupling,并且可能导致Captive Dependencies。
如果需要静态属性,则必须自己注入依赖关系。您可以在Composition Root之后执行此操作,即在您完成对容器的所有注册之后。
例子:
var container = new Container();
// Make registrations to container here:
container.Verify();
Utility.MyStaticProperty = container.GetInstance<IDependency>();
在正常情况下,简单的喷油器将检测这些类型的Lifestyle Mismatches,但不能这样做,当你自己注射此属性。
什么不明确解释?它解释了其他行为的行为,为什么默认情况下没有启用它,以及如何覆盖它。你的课是静态还是你想调用的方法?如果是班级,那么我认为你没有注入的可能性。也许你应该添加它作为你的控制器的构造器注入的一部分? – Icepickle
该方法是静态的。这个类方法直接从Layout中调用,所以没有控制器在图片中。 – Dhwani
这将是很好的更新你的问题,并提供更多的上下文。显示你的用例,显示你想注入依赖的类。描述那个依赖是什么。显示你打算如何使用这个属性。 – Steven