Does it matter in what order the RegisterType is called in the Unity injection container in C #?

Let's assume we have several classes:

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

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

      

When we register, does it matter in what order we call the RegisterType method? (lines 1-4 below)

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

      

+3


source to share


1 answer


It doesn't matter if the interfaces you register are all different.



When registering the same interface multiple times, however, ordering matters; in this case, each subsequent call to RegisterType will overwrite the previous registration for this interface.

+4


source







All Articles