2010-12-27 9 views
2

私が構築しているクラスライブラリでは、HtmlAgilityPackのファイルを含めています。私の質問:私はHtmlAgilityPackクラスの周りに自分の名前空間をラップする必要がありますか?たとえば:外部ライブラリと名前空間に関する質問

namespace HtmlAgilityPack { 
    internal... // blah blah blah 

} 

は次のようになります。

namespace MyNamespace { 
    namespace HtmlAgilityPack { 
     internal... // blah blah blah 

    } 
} 

私はすでにHtmlAgilityPackを使用するプロジェクトでの競合を防ぐために、これを行うことを考えています。これを行う他の理由はありますか?ありがとう、

答えて

1

ユーザーは名前空間を使用してクラス名を一意に識別できる必要があります。これは最初の名前空間のアイデア全体です。エイリアスのような回避策がありますが、私はあなたのライブラリのユーザーにこの問題を紹介しません。その場合、提案通りにHtmlAgility名前空間をラップします。代わりにやっての

1

いいえ、私はあなたがこれについて心配する必要はないと思います。既にHtmlAgilityPackを使用しているプロジェクトでは、HtmlAgilityPack名前空間を単純に共有することができます。ここでは争いの問題は見られません。

+0

HtmlAgilityPackのWatered-downバージョンで、HAPの完全版(プロジェクト内)がすでに作成した名前空間にクラスを追加すると、コンパイラがエラーになることはありますか? (つまり、clobbering) –

+1

私は、あなたが物理的にHtmlAgilityPackからのファイルを含めることを確認しますか?その場合、はい、私はあなた自身の名前空間にそれをラップする必要があると思います。 –

+0

私はHAPのdllファイルを含めることを検討していましたが、私はむしろ私のライブラリに依存権を埋め込んでいます。それ以外の場合、ユーザーは1つのライブラリを使用するために2つのdllファイルを含める必要があります。 –

1

namespace MyNamespace { 
    namespace HtmlAgilityPack { 
     internal... // blah blah blah 

    } 
} 

namespace MyNamespace.HtmlAgilityPack 
{ 
     internal... // blah blah blah 
} 

これは一般的な方法ですを行い、はい、これを行うことは良いですが、とあるため、この名前空間は生きています。

+0

チップをありがとう! –

関連する問題