2

わかりました...これは私が説明するのが混乱するので、1つの名前空間と別の名前空間のクラスを示します...

Company.Product.Domain
(これは、そのクラスに固有のメソッドを含むクラスを表します。別の名前空間で同じ名前をどのように使用しているかがわかるように、「ドメイン」と名付けました

Company.Product.Domain.Data.Contracts
(この名前空間は、WCF サービスで使用されるすべてのデータ コントラクト用になります)

私がCompany.Product.Domainクラスにいて、 内のクラスを使用しようとすると、Company.Product.Domain.Data.Contractsこれを入力しようとすると、インテリセンスに到達しCompany.Product.Domain、それ以上表示されません。また、名前空間へのアクセスを許可するのではなく、その参照がクラスであることも示しています。

クラスでCompany.Product.Domain.Data.Contracts参照されています。Company.Product.Domain

Company.Productその中にクラスを持つ名前空間と、別の名前空間を持つことは可能Company.Product.Domain.Data.Contractsですか? もしそうなら、どのように?

ありがとう

4

2 に答える 2

5

はい、可能です。ただし、ペストのように避ける必要があります。それはすべてをはるかに複雑にします。

Eric Lippert は最近、まさにこのトピックに関する一連のブログ記事を書いています。確かに、それは全く同じ問題ではありません - 彼はFoo.Bar.Bar(Foo.Barは名前空間で、Barはクラスです) について話していますが、同じ問題の多くに出くわすことになると思います。実際、彼が説明しているシナリオよりも実際に悪化させる可能性があると思います. しないでください。

于 2010-03-24T20:58:58.637 に答える
0

Company.Product.Domain.Data 名前空間に別名を付けることができます。

したがって、ドメインクラスでは、代わりに

using Company.Product.Domain.Data;

のようなものを試してください

using myData = Company.Product.Domain.Data;
namespace Company.Product
{
  class Domain
  { ...
    myData::Data.method();
  }
}

IntelliSense がこれで希望どおりに動作するかどうかはわかりませんが、Domain クラスと Domain 名前空間のあいまいさは解消されます。

于 2010-03-24T21:06:22.140 に答える