我使用了来自简单注入器的依赖注入。现在我正在尝试实现属性注入,但帮助文档并没有多大帮助。
谁能用简单的例子解释一下属性注入是如何工作的?
我想在 Web 项目的一个实用程序类中使用它,而不是在控制器中。并且该类方法是静态的。
我使用了来自简单注入器的依赖注入。现在我正在尝试实现属性注入,但帮助文档并没有多大帮助。
谁能用简单的例子解释一下属性注入是如何工作的?
我想在 Web 项目的一个实用程序类中使用它,而不是在控制器中。并且该类方法是静态的。
该文档没有解释如何注入静态属性,因为 Simple Injector 不支持此功能。
静态属性通常不是一个好主意,因为它们会阻碍可测试性,导致Temporal Coupling并可能导致Captive Dependencies。
如果需要静态属性,则必须自己注入依赖项。您可以在对容器进行所有注册之后,在Composition Root中执行此操作。
例子:
var container = new Container();
// Make registrations to container here:
container.Verify();
Utility.MyStaticProperty = container.GetInstance<IDependency>();
在正常情况下,Simple Injector 会检测到这些类型的Lifestyle Mismatches,但是当您自己注入此属性时,它将无法做到这一点。