extern alias (C# リファレンス)
場合によっては、同じ完全修飾型名を持つ、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 ディレクティブに関する記事をご覧ください。
using Class1V1 = GridV1::Namespace.Class1;
using Class1V2 = GridV2::Namespace.Class1;
C# 言語仕様
詳細については、「C# 言語の仕様」を参照してください。 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。
関連項目
.NET