2012-02-10 13 views
4

私は次のルールに混乱します。私は問題が発生したことを発見しました。なぜなら、現在のアプリケーション名は "Common"という会社のライブラリの名前でもある "Common"であるからです。名前空間WCFと似た名前の混乱

  • WCFサービス: Common.Services
  • Appliationドメイン・レイヤー: Common.Domain
  • 共有ライブラリ:私は、WCFサービスは、次の名前空間と結合クラスライブラリを実行して参照する必要があり CompanyName.Common
  • 私はWCFでサービスを利用する場合、このしかし、それだけで罰金コンパイル命名して

テストクライアントCompany.CommonにはDomainが含まれていません。

Company.Common実際にネストされたDomain名前空間を含んでいません。別のCommon.Domainがありますが、それは入れ子にしてはいけません... ...?

すでにCompanyName.Common名前空間を参照している別のクライアント(Webアプリケーションなど)でサービスを使用している場合、名前空間が混乱しているために型を再利用しません。

Visual Studioを使用して、クライアント上で参照されている2つのアセンブリを調べることができ、正しい構造を示しています。私はそれがちょうどWCFは名前空間が好きではないように思えるものから。

私は他の誰かがこれを見つけたとは思わない?

+1

あなたのタイプ名はすべて綴っていますか?おそらく 'global ::'という接頭辞をつけてみてください。 –

+0

WCFProxyGeneratorで何かをオーバーライドすることは可能でしょうか? – Evgeny

答えて

1

WCFには、異なるWebサービスエンドポイントとして公開されている場合でも、ネームスペースやクラスが競合する場合に、いくつかの問題があります。たとえば、空のサービスReference.csファイルが作成されます。いずれにしても、一般的には、名前空間を意味のある名前に変更するか、「共通」以外のより意味のある名前空間に名前を変更することが推奨されます。