2013-03-08 22 views
1

我有一個名爲空間爲MyCompany.InformixConnector的.NET項目。我添加了一個COM包裝器作爲一個單獨的項目/程序集,只會部署到少數客戶端。我正在努力如何組織項目/組件。.NET:COM包裝器的命名空間/組裝設計

我現在有2個組件:MyCompany.InformixConnectorMyCompany.InformixConnector.Com

.Com組件具有的「核心」程序集的引用。然而,讓一個較低級別的程序集引用一個更高級的程序集感覺不對。

我想約2的替代品:

  1. 重命名核心總成,使他們都在同一水平:MyCompany.InformixConnector.CoreMyCompany.InformixConnector.Com
  2. 把COM項目在不同的命名空間,就像MyCompany.InformixConnectorForCom

我想基本的問題是:一個COM包裝應該和它所包裝的代碼一樣存在於相同的命名空間中嗎?

回答

1

MS naming guidelines狀態,沒有什麼不對的嵌套命名取決於更高級別之一:

嵌套的命名空間應該在含 的命名空間,類型的依賴。例如,System.Web.UI.Design中的類取決於對System.Web.UI中的類的 。但是,System.Web.UI 中的類不依賴於System.Web.UI.Design中的類。

相同的邏輯可應用於組件命名。在你的特定情況下,我會將核心功能放入MyCompany.InformixConnector.Core名稱空間和程序集中,這將明確指出常見的東西在哪裏。

然後爲互操作性MyCompany.InformixConnector.Interop創建一個名稱空間,並將處理com和其他3d聚會所需的所有通用東西放在那裏。如果沒有這樣的東西,你可以跳過它並根據需要添加它。

然後爲你的com包裝器創建一個名稱空間和程序集MyCompany.InformixConnector.Interop.Com。該組件將參考MyCompany.InformixConnector.CoreMyCompany.InformixConnector.Interop(如果需要)。

+0

我非常喜歡。謝謝。 – nunzabar 2013-03-08 17:26:43