什么时候必须在C#中使用extern alias关键字?

什么时候必须在C#中使用extern alias关键字?

基本上,当您想要使用来自不同程序集的具有相同完全限定名称(相同名称空间,相同类型名称)的两种类型时,您才真正需要它。 您为每个程序集声明了一个不同的别名,因此您可以通过该别名引用它们。

不用说,你应该尽量避免陷入这种情况开始:)

Anson Horton有一篇关于它的好博文 。

它可以帮助你摆脱版本化挖掘的真正深洞。 假设您的程序的第一个版本使用此类

 using System; namespace Acme.Financial.Banking { [Serializable] public class BankAccount { public double Balance { get; set; } //... } } 

你已经用它序列化了很多银行账户记录。 一位会计师开始抱怨资产负债表被罚款十亿分之一,所以你改变了class级:

  public decimal Balance { get; set; } 

问题解决了,下一位客户的资产负债表很快乐。 在您被要求以旧格式升级包含大量序列化记录的现有客户之前。 很大的问题,因为类已经改变,你不能再对反序列化进行反序列化了。

extern别名解决了您的问题,您可以在代码中引用该类的旧版本和新版本,即使命名空间名称和类名称相同。