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::Gridgrid.dll からのグリッド コントロールで、GridV2::Gridgrid20.dll からのグリッド コントロールになります。

Visual Studio の使用

Visual Studio を使用している場合は、同様の方法でエイリアスを指定できます。

Visual Studio のプロジェクトに、grid.dllgrid20.dll の参照を追加します。 プロパティ タブを開き、エイリアスをグローバルから GridV1 および GridV2 にそれぞれ変更します。

上記と同じ方法でこれらのエイリアスを使用します

 extern alias GridV1;  
  
 extern alias GridV2;  

これで、"using エイリアス ディレクティブ" を使用して、名前空間または型のエイリアスを作成できるようになりました。 詳細については、using ディレクティブに関する記事をご覧ください。

using Class1V1 = GridV1::Namespace.Class1;

using Class1V2 = GridV2::Namespace.Class1;

C# 言語仕様

詳細については、「C# 言語の仕様」を参照してください。 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。

関連項目