2011-08-12 17 views
2

私はC#コンソールアプリケーションを1つ作成しました。そのアプリケーションでは、私は多くの名前空間を持っています。例えば他のプロジェクトで利用可能な名前空間

namespace com.xyz.foo.bar 
{ 
} 

namespace com.xyz.abc.def 
{ 
} 

Iは、WCFサービスプロジェクトに、このコンソールアプリケーションの参照を追加し、名前空間の一部は、インポートのために使用できません。つまり上記の例からcom.xyz.foo.bar名前空間を取得できますが、com.xyz.abc.def名前空間は利用できません。

なぜこれが起こっているのか分かりません。

「オブジェクトブラウザ」からコンソールアプリケーションの実行可能ファイルを開くと、すべての名前空間が表示されます。

誰もこの事の背後にある理由を説明できますか?

+0

コンテンツには任意の違いがありますか?両方とも公開クラスがありますか? – Matthieu

+0

@Matthiue、両方の名前空間には1つ以上のパブリッククラスがあります。 com.xyz.abc.def名前空間には、mainメソッドを持つpublicクラスが1つあります。 – Shekhar

答えて

3

私はどこ同様の問題を持っていただろうしながら、名前空間が表示されませんとしてマークされたクラスなどを持っている必要があります同じソリューションにプロジェクト参照があっても名前空間が見つかりませんでした。種類は公開されました。

私はtを変更する必要があることが判明しました彼は "ターゲットフレームワーク"を ".NET Framework 4 Client Profile"ではなく ".NET Framework 4"にします。私はなぜこれが "不明な名前空間"エラーになったのかわからなかったが、私の問題を解決した。

ジョン

+0

一度私はオフィスにいます。 – Shekhar

1

あなたの名前空間がpublic

namespace com.xyz.foo.bar 
{ 
    class MyClass 
    { 
    } 
} 

namespace com.xyz.abc.def 
{ 
    public class AnotherClass 
    { 
    } 
} 

bardefは(他に何も彼らでpublicと宣言されていない場合)

+0

私はcom.xyz.foo.bar名前空間にpublicクラスを持っていますが、その全体の名前空間は利用できません。なぜ名前空間はパブリッククラスを持つ必要がありますか? – Shekhar

関連する問題