主项目的引用命名空间

时间:2013-11-26 12:17:23

标签: c# .net vb.net namespaces vb.net-2010

我有一个项目,它引用了“公用事业”项目。 “Utilities”项目引用了第3个项目。所有都具有相同的命名空间,但我不能从主项目中“使用OurNamespace.Utilities.3rdProject”。

我需要保留它以便所有其他新项目,只需引用“Utilities”项目并访问通过它引用的所有其他名称空间。我不能在所有项目中包含所有参考文献。

/ edit(它级联)

主要项目(参考公用事业)          - 公用事业                   - 具有由Utilities引用的相同名称空间的项目

在Main项目中,我现在需要能够访问Utilities引用中引用的项目中的命名空间,但不能将其专门添加到主项目中。

修改 的 “Project 1”引用了Utilities

using Utilities.Namespace1;

在Utilities中,另一个项目使用Namespace2

引用

我现在想要从“Project 1”

访问Namespace2
using Utilities.Namespace2;

无需在“Project 1”中专门引用BOTH,因为会有多个项目引用Utilities

1 个答案:

答案 0 :(得分:0)

如果要在另一个程序集中直接使用程序集的组件,则需要引用。 “直接”是指强烈打字的方式,例如:

  • 在另一个程序集中创建一个类型的实例。
  • 处理其他程序集中的类型实例。

相反,“间接”使用是指Utilities程序集在后台使用第3个项目的组件,但不发布这些组件,例如通过公共财产,公共方法的论据等 要进一步阐明程序集和命名空间:一个不引用命名空间,而是引用程序集。命名空间仅用于使类型名称唯一。从技术角度来看,命名空间和程序集名称彼此完全独立(尽管使用程序集名称启动命名空间是一种很好的做法)。因此,在两个程序集中具有相同的命名空间,不会以任何方式改变这种情况;如果你想使用其他组件的类型,你仍然需要一个参考 为了解决您的问题,您可以添加对第3个项目的引用,或者如果您不能这样做,请执行以下操作之一:

  • 在Utilities程序集中添加包装器,以获得第3个项目中所需的功能。由于您已经有了对Utilities程序集的引用,因此只要不直接访问第3个项目的类型,就可以访问这些包装器。
  • 创建另一个包含包装器的中间项目并引用它。