使用静态类时的依赖注入

时间:2019-05-22 09:14:46

标签: dependency-injection static unity-container

一般问题-我知道使用DI容器时应避免使用静态类,但是在我正在从事的项目中,静态类之一是我无法避免的约束。我正在向该静态类添加方法,并且需要能够注入由DI容器创建的服务。一种方法是向容器添加静态访问,但是我认为这是一种反模式。我想知道是否有一种更优雅的方式将服务注入静态方法。

特定问题-我正在开发WPF附加属性,并且在change回调中,我需要获取使用Unity DI容器注册的服务的实例。我唯一想到的解决方案是在引导程序中添加一个静态属性,该属性将返回Unity容器。

    public class Bootstrapper
{
    public static UnityContainer Instance
    {
        get
        {
            return _container;
        }
    }

但是将容器存储在静态字段中感觉很不正确。

还有其他-更优雅的解决方案吗?

0 个答案:

没有答案