在C#中的Unity injection容器中调用RegisterType的顺序是否重要?
让我们假设,我们有几个这样的类:在C#中的Unity injection容器中调用RegisterType的顺序是否重要?,c#,dependency-injection,unity-container,C#,Dependency Injection,Unity Container,让我们假设,我们有几个这样的类: public class WorkerLevel1 : IWorkerLevel1 { public WorkerLevel1(IDependency1 dep1, IWorkerLevel2 workerLevel2) { ... } } public class WorkerLevel2 : IWorkerLevel2 { public WorkerLevel2(IDependency2 dep2) { ..
public class WorkerLevel1 : IWorkerLevel1
{
public WorkerLevel1(IDependency1 dep1, IWorkerLevel2 workerLevel2)
{
...
}
}
public class WorkerLevel2 : IWorkerLevel2
{
public WorkerLevel2(IDependency2 dep2)
{
...
}
}
当我们进行注册时,调用RegisterType方法的顺序是否重要?
(下文第1-4行)
container.RegisterType();
container.RegisterType();
container.RegisterType();
container.RegisterType();
这没关系,只要注册的接口都不同
但是,当多次注册同一接口时,顺序并不重要;在这种情况下,对RegisterType的每次后续调用都将覆盖该接口以前的注册。是什么阻止了您自己尝试此功能?
container.RegisterType<IDependency1,Dependency1>();
container.RegisterType<IDependency2, Dependency2>();
container.RegisterType<IWorkerLevel2, WorkerLevel2>();
container.RegisterType<IWorkerLevel1, WorkerLevel1>();