2

名前空間を持つ DLL を参照しています。

Model

クラスが

Item

だからModel.Itemは私が参照しようとしているものです。

ただし、私のプロジェクトでは、名前空間にいます

Logic.Section

これにも含まれています

Logic.Model

その下にさまざまなクラスがあります。

そのため、Model.Item の DLL を参照しようとすると、Logic.Model に戻るだけなので参照できません。

この場合、通常は名前空間を再構築しますが、最高レベルの名前空間から開始して下に戻るように指示する方法はありますか。

4

4 に答える 4

8

名前空間エイリアスを使用できます

using Co = Company.Proj.Nested; 

http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx

またはあなたの場合のようなもの

using M = Model
于 2013-09-16T08:29:44.890 に答える
1

is there a way to tell it to start at the highest level namespaces and go back down.

using global::Model.Item;
于 2013-09-16T08:32:36.167 に答える
0

これは、サードパーティの DLL、ライブラリで発生する可能性があります。通常、名前空間に次のような名前を付けます。

using myModelInMyDll = Model.Item 

次に myModelInMyDll を使用します

于 2013-09-16T08:32:12.533 に答える
0

グローバル名前空間エイリアスを使用して、名前空間の解決を強制的に最上位レベルで開始することができます。したがって、Logic名前空間内で

using Model; // resolves to Logic.Model
using global::Model; // resolves to Model.

多くのクラス名と名前空間名が衝突している場合は、命名戦略の見直しを検討する必要があります。これがサードパーティ ライブラリの結果である場合は、使用されているクラスに別名を付けることができます。

using MyModel = global::Model; //aliases the namespace, so use MyModel.Item
using MyItem = global::Model.Item; //aliases the class, so use MyItem
于 2013-09-16T08:38:48.247 に答える