簡體   English   中英

C#引用名稱空間隱藏類名稱空間

[英]C# Referenced Namespace Hidden By Class Namespace

我有一個這樣的課:

namespace Token1.Token2.Token3
{
    public class Class1
    {
    }
}

而另一個類是這樣的:

namespace Token2.Token4.Token5
{
    public class Class1
    {
    }
}

第一個類是我項目的一部分,第二個類來自我組織中另一個組開發的框架庫。 請注意,第一個類的名稱空間在第二個位置具有Token2,而第二個類的名稱空間在第一個位置具有Token2。

我遇到的問題是我似乎無法在第一個類中引用第二個類,因為它看起來像命名空間沖突。 如果我嘗試在第一堂課中這樣做:

namespace Token1.Token2.Token3
{
    public class Class1
    {
        var frameworkClass1 = new Token2.Token4.Token5.Class1();
    }
}

Visual Studio IDE以紅色突出顯示Token4,並顯示“無法解析符號'Token4'”。 如果我將鼠標懸停在Token2上,我正在新建Class1,intellisense會向我顯示“名稱空間Token1.Token2”,因此它清楚地看到了我的項目類的命名空間而沒有看到我的框架類的命名空間。

由於已經存在大量代碼,因此很難更改任一類庫的名稱空間。 有辦法解決這個問題嗎?

由於Token2也是Token1的子命名空間, Token1您需要指定您正在尋找“根”命名空間:

var frameworkClass1 = new global::Token2.Token4.Token5.Class1();

您也可以using語句對其進行別名:

using Token5 = global::Token2.Token4.Token5;

然后只需引用別名:

var frameworkClass1 = new Token5.Class1();

您可以嘗試使用global :: Token2作為框架命名空間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM