我们必须在C#中使用extern alias
关键字吗?
答案 0 :(得分:29)
基本上,当您想要使用来自不同程序集的具有相同完全限定名称(相同名称空间,相同类型名称)的两种类型时,您才真正需要它。您为每个程序集声明了一个不同的别名,因此您可以通过该别名引用它们。
毋庸置疑,你应该尽量避免陷入这种情况:)
答案 1 :(得分:29)
它可以帮助你将自己从真正深度挖出的版本中挖出来。假设您的程序的第一个版本使用此类
using System;
namespace Acme.Financial.Banking {
[Serializable]
public class BankAccount {
public double Balance { get; set; }
//...
}
}
你已经用它序列化了很多银行账户记录。一位会计师开始抱怨资产负债表被罚款十亿分之一,所以你改变了班级:
public decimal Balance { get; set; }
问题解决了,下一位客户的资产负债表很快乐。在您被要求以旧格式升级包含大量序列化记录的现有客户之前。很大的问题,因为课程已经改变,你不能再反序列化记录了。
extern别名解决了您的问题,您可以在代码中引用该类的旧版本和新版本,即使命名空间名称和类名称相同。