C# 实现依赖倒置原则的程序的入口点

C# 实现依赖倒置原则的程序的入口点,c#,.net,oop,C#,.net,Oop,让我们假设我们的程序有两层:A(用户界面)和B(实际工作) 如果我理解正确,那么: 如果不使用DI,层A将取决于层B提供的具体实现。应用DIP后,层A将定义层B将实现的抽象接口。然后使用依赖注入,层B将这些实现传递给层A 我的问题是: 程序的入口点(main()函数)应该在A层还是B层 我不确定我的推理是否正确,但我认为如果main()在一个层中,那么就会有一个依赖循环。另一方面,层B中的main()在某种程度上与我的直觉背道而驰。在大多数情况下,层B都有接口和实现。是什么让你认为DI改变了这一

让我们假设我们的程序有两层:A(用户界面)和B(实际工作)

如果我理解正确,那么:

如果不使用DI,层A将取决于层B提供的具体实现。应用DIP后,层A将定义层B将实现的抽象接口。然后使用依赖注入,层B将这些实现传递给层A

我的问题是:

程序的入口点(main()函数)应该在A层还是B层


我不确定我的推理是否正确,但我认为如果main()在一个层中,那么就会有一个依赖循环。另一方面,层B中的main()在某种程度上与我的直觉背道而驰。

在大多数情况下,层B都有接口和实现。是什么让你认为DI改变了这一点?你打算使用哪一个IoC容器?你的意思是“我应该把作文的词根放在哪里?”有很多关于这方面的文章,但都有说明。e、 这是倒退。对于DI,B层将定义接口,A层将实现接口,并在运行时将这些实现传递给B层。程序入口点通常位于A层。问题中的示例可能会导致混淆;UI和B之间的依赖关系描述既不明显也不标准。