可能必须引用具有相同完全限定类型名称的两个版本的程序集。 例如,你可能必须在同一应用程序中使用两个或更多版本的程序集。 通过使用外部程序集别名,每个程序集中的命名空间可以包装在别名命名的根级命名空间中,这样就可以在同一文件中使用这些命名空间。
注释
extern 关键字还用作方法修饰符,声明以非托管代码编写的方法。
若要引用具有相同完全限定类型名称的两个程序集,必须在命令提示符处指定别名,如下所示:
/r:GridV1=grid.dll
/r:GridV2=grid20.dll
这将创建外部别名 GridV1
和 GridV2
。 若要从某个程序内使用这些别名,请使用 extern
关键字引用它们。 例如:
extern alias GridV1;
extern alias GridV2;
每个外部别名声明都引入了一个附加的根级命名空间,该命名空间并行(但不位于)全局命名空间内。 因此,可以通过使用完全限定的名称(根于适当的命名空间别名)来引用每个程序集中的类型,而不含糊不清。
在前面的示例中, 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# 语法和用法的明确来源。