编程语言
首页 > 编程语言> > 在C#中以什么顺序在Unity注入容器中调用RegisterType是否重要?

在C#中以什么顺序在Unity注入容器中调用RegisterType是否重要?

作者:互联网

假设,我们有几个这样的类:

public class WorkerLevel1 : IWorkerLevel1
{
  public WorkerLevel1(IDependency1 dep1, IWorkerLevel2 workerLevel2)
  {
    ...
  }
}

public class WorkerLevel2 : IWorkerLevel2
{
    public WorkerLevel2(IDependency2 dep2)
    {
      ...
    }
}

注册时,调用RegisterType方法的顺序有关系吗?
(下面的1-4行)

container.RegisterType<IDependency1,Dependency1>();
container.RegisterType<IDependency2, Dependency2>();
container.RegisterType<IWorkerLevel2, WorkerLevel2>();
container.RegisterType<IWorkerLevel1, WorkerLevel1>();

解决方法:

没关系,只要您注册的接口都不同即可.

但是,当多次注册相同的接口时,顺序确实很重要.在这种情况下,对RegisterType的每个后续调用都将覆盖该接口的先前注册.

标签:dependency-injection,unity-container,c
来源: https://codeday.me/bug/20191029/1957770.html