在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