【问题标题】:How do you ensure .Net always searches for a namespace from the root of the namespace tree?您如何确保 .Net 始终从命名空间树的根目录搜索命名空间?
【发布时间】:2009-02-12 21:07:16
【问题描述】:

有没有办法告诉 .Net 从命名空间树的 root 搜索命名空间?

假设我有这两个完全独立的命名空间:

Apple.Orange.Banana
Orange.Grape.Peach

假设他们来自不同的程序员,每个人的“橙色”完全是巧合。

如果我在“Apple.Orange.Banana”中并且我试图导入(或引用)“Orange.Grape.Peach”,.Net 我试图从“Apple.Orange”中搜索的东西。橘子.香蕉”。

我该如何告诉它,“从看,而不是我现在所在的位置。”这会很棒:

~Orange.Grape.Peach

但是,唉,这不存在。

我知道你们中的一些人会说我应该更好地规划命名空间,但是当我使用来自两个地方的代码时会发生什么,这些代码带有我无法更改的预定义命名空间,并且正如我上面提到的那样它们发生冲突?

【问题讨论】:

  • 为什么说它不存在?见斯科特的回答...

标签: c# namespaces


【解决方案1】:

您是否尝试过使用 global:: 解析范围?例如,如果您有以下情况:

private global::Orange.Grape.Peach.classname x;

此外,根据命名空间是在命名空间声明之外还是内部导入,您会获得不同的分辨率,所以

using System.Linq;
namespace MyLinq 
{
   // ...
}

可以提供不同的解析规则:

namespace MyLinq 
{
   using System.Linq;

   // ...
}

【讨论】:

  • @Deane:不客气。很高兴您能够解决问题。
【解决方案2】:

你可以像这样给根 Orange 起别名:

using RootOrange = Orange;

那么你可以这样做:

RootOrange.Grape.Peach

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    相关资源
    最近更新 更多