2012-02-10 55 views
4

我對我應該遵循的規則有點困惑。我發現問題出現了,因爲當前的應用程序名稱恰好是「Common」,這也是「Common」公司庫的名稱。我有一個WCF服務運行,並引用了幾個類庫與下面的命名空間:命名空間與WCF相似的名稱混淆

  • WCF服務: Common.Services
  • Appliation領域層: Common.Domain
  • 公用庫: CompanyName.Common

有了這個命名,它編譯得很好,但是當我使用WCF它說測試客戶端Company.Common不包含Domain您是否缺少程序集引用?

Company.Common確實不包含嵌套的Domain命名空間。有獨立的Common.Domain但不應該嵌套,所以......?

如果我在已經引用CompanyName.Common名稱空間的另一個客戶端(例如Web應用程序)中使用該服務,則它不會重用該類型,因爲名稱空間會變得混亂。

使用Visual Studio我可以查看客戶端上的兩個引用程序集,它們顯示正確的結構。從我可以告訴它看來,WCF不喜歡命名空間。

我不認爲有人遇到過這個嗎?

+1

你是否拼出所有類型的名字?也許嘗試在'global ::'前加前綴。 – 2012-02-11 02:07:18

+0

也許有可能重寫WCFProxyGenerator中的某些東西? – Evgeny 2013-07-22 09:21:35

回答

1

如果暴露爲不同的Web服務端點,WCF在涉及到衝突的名稱空間和甚至類時遇到許多問題。例如,它將導致空服務Reference.cs文件。在任何情況下,一般的好建議都是將命名空間重命名爲有意義的東西,或將其分解爲更多有意義的命名空間,而不是「Common」。