簡體   English   中英

來自主項目的引用名稱空間

[英]Reference namespace from main project

我有一個項目引用了“實用程序”項目。 “實用程序”項目引用了第三個項目。 它們都具有相同的名稱空間,但是我不能從主項目中執行“使用OurNamespace.Utilities.3rdProject”。

我需要保留它,以便所有其他新項目都只需引用“實用程序”項目,並可以訪問通過它引用的所有其他名稱空間。 我無法在所有項目中都包含所有參考。

/ edit(級聯排序)

主項目(引用實用程序)-實用程序-實用程序引用具有相同名稱空間的項目

在Main項目中,我現在需要能夠訪問Utilities引用中引用的項目中的名稱空間,但不必將其專門添加到主項目中。

編輯 “項目1”參考實用程序

using Utilities.Namespace1;

在實用程序中,另一個項目用Namespace2引用

我現在想從“項目1”訪問Namespace2

using Utilities.Namespace2;

不必在“項目1”中同時引用兩個項目,因為將有多個引用實用程序的項目

如果要直接在另一個裝配中使用裝配的零部件,則需要參考。 “直接”是指一種強類型的方式,例如:

  • 在另一個程序集中創建一個類型的實例。
  • 在另一個程序集中處理類型的實例。

相反,“間接”使用是指Utilities程序集在后台使用第3個項目的組件,但不通過公共屬性,公共方法的參數等發布這些組件。
為了進一步闡明程序集和名稱空間:不引用名稱空間,而是引用程序集。 命名空間僅用於使類型名稱唯一。 從技術的角度來看,名稱空間和程序集名稱是完全相互獨立的(盡管以程序集名稱開頭的名稱空間是一個好習慣)。 因此,在兩個程序集中具有相同的名稱空間,不會以任何方式改變這種情況。 如果要使用其他程序集的類型,則仍需要參考。
為了解決您的問題,您可以將引用添加到第3個項目中,或者如果不能這樣做,請執行以下一項操作:

  • 在“實用工具”程序集中添加包裝器,以實現第3個項目中所需的功能。 由於已經有了對Utilities程序集的引用,因此可以訪問這些包裝程序-只要您不直接訪問3rd項目的類型即可。
  • 創建另一個包含包裝的中間項目,並引用它。

暫無
暫無

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

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