同じ完全修飾型名を持つ 2 つのバージョンのアセンブリを参照する必要がある場合があります。 たとえば、同じアプリケーションで 2 つ以上のバージョンのアセンブリを使用する必要がある場合があります。 外部アセンブリ エイリアスを使用すると、各アセンブリの名前空間を、エイリアスによって名前付けされたルート レベルの名前空間内にラップできるため、同じファイルで使用できます。
注
extern キーワードは、アンマネージ コードで記述されたメソッドを宣言するメソッド修飾子としても使用されます。
同じ完全修飾型名を持つ 2 つのアセンブリを参照するには、次のように、コマンド プロンプトでエイリアスを指定する必要があります。
/r:GridV1=grid.dll
/r:GridV2=grid20.dll
これにより、外部エイリアス GridV1
と GridV2
が作成されます。 プログラム内からこれらのエイリアスを使用するには、 extern
キーワードを使用してそれらを参照します。 例えば次が挙げられます。
extern alias GridV1;
extern alias GridV2;
各 extern エイリアス宣言では、グローバル名前空間と並列 (ただし、内部には存在しない) 追加のルート レベルの名前空間が導入されます。 したがって、各アセンブリの型は、適切な名前空間エイリアスにルート化された完全修飾名を使用して、あいまいさなしで参照できます。
前の例では、 GridV1::Grid
は grid.dll
のグリッド コントロールであり、 GridV2::Grid
は grid20.dll
のグリッド コントロールになります。
Visual Studio の使用
Visual Studio を使用している場合は、同様の方法でエイリアスを指定できます。
Visual Studio で プロジェクトにgrid.dll と grid20.dll の参照を追加します。 プロパティ タブを開き、エイリアスをそれぞれグローバルから GridV1 と GridV2 に変更します。
上記と同じ方法でこれらのエイリアスを使用する
extern alias GridV1;
extern alias GridV2;
エイリアス ディレクティブを使用して、名前空間または型のエイリアスを作成できるようになりました。 詳細については、 using ディレクティブを参照してください。
using Class1V1 = GridV1::Namespace.Class1;
using Class1V2 = GridV2::Namespace.Class1;
C# 言語仕様
詳細については、C# 言語仕様のを参照してください。 言語仕様は、C# の構文と使用法の決定的なソースです。
こちらも参照ください
.NET