gpt4 book ai didi

c# - 使用简单注入(inject)器在静态类中注入(inject)属性

转载 作者:行者123 更新时间:2023-11-30 20:29:13 26 4
gpt4 key购买 nike

我使用了来自简单注入(inject)器的依赖注入(inject)。现在我正在尝试实现属性注入(inject),但是 help document帮助不大。

谁能用简单的例子解释一下属性注入(inject)是如何工作的?

我想在 Web 项目的一个实用程序类中使用它,而不是在 Controller 中。该类方法是静态的。

最佳答案

文档没有解释如何注入(inject)静态属性,因为 Simple Injector 不支持它。

静态属性通常不是一个好主意,因为它们阻碍了可测试性,导致 Temporal Coupling ,并可能导致Captive Dependencies .

如果需要静态属性,您必须自己注入(inject)依赖项。您可以在 Composition Root 中执行此操作,在您对容器进行所有注册之后。

例子:

var container = new Container();

// Make registrations to container here:

container.Verify();

Utility.MyStaticProperty = container.GetInstance<IDependency>();

在正常情况下,Simple Injector 会检测这些类型的 Lifestyle Mismatches , 但当您自己注入(inject)此属性时,它将无法这样做。

关于c# - 使用简单注入(inject)器在静态类中注入(inject)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46441007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com