C# 如果引用一个库两次会有问题吗

C# 如果引用一个库两次会有问题吗,c#,.net-core,C#,.net Core,假设项目A引用了库B和库C,库B本身也引用了库C 一个真实的例子是一个带有基础设施和应用程序库的WebAPI项目。API项目同时引用了它们,基础结构层也引用了应用程序层。这是因为应用层定义了多个接口,而基础结构层实现了它们。基础架构层需要了解这些接口类型 我想应用程序库会加载两次,不是吗?这样做可以吗?或者基础架构层是否有其他方法可以从应用程序层实现接口?可以。为什么你认为它会被加载两次呢?我认为A会加载B和C中的所有内容,而B已经包含CIt中的所有内容不会。否则,如果您有像proj1->pr

假设项目A引用了库B和库C,库B本身也引用了库C

一个真实的例子是一个带有基础设施和应用程序库的WebAPI项目。API项目同时引用了它们,基础结构层也引用了应用程序层。这是因为应用层定义了多个接口,而基础结构层实现了它们。基础架构层需要了解这些接口类型


我想应用程序库会加载两次,不是吗?这样做可以吗?或者基础架构层是否有其他方法可以从应用程序层实现接口?

可以。为什么你认为它会被加载两次呢?我认为A会加载B和C中的所有内容,而B已经包含CIt中的所有内容不会。否则,如果您有像
proj1->proj2->proj3->proj4
这样的层次结构,并且几乎所有的项目都将使用
System
System.Data
,那么如果为每个项目加载所有这些
System
库,那么它将获得太多的负载。程序员肯定能很好地管理这件事。您有时会看到“找到同一依赖程序集的不同版本”和警告,表明c#无法在两个不同版本的引用之间进行选择。阅读有关绑定重定向的内容,等等。为什么你认为它会被加载两次呢?我认为A会加载B和C中的所有内容,而B已经包含CIt中的所有内容不会。否则,如果您有像
proj1->proj2->proj3->proj4
这样的层次结构,并且几乎所有的项目都将使用
System
System.Data
,那么如果为每个项目加载所有这些
System
库,那么它将获得太多的负载。程序员肯定能很好地管理这件事。您有时会看到“找到同一依赖程序集的不同版本”和警告,表明c#无法在两个不同版本的引用之间进行选择。阅读有关绑定重定向等内容