Jon*_*eet 30
基本上,当您想要使用来自不同程序集的具有相同完全限定名称(相同名称空间,相同类型名称)的两种类型时,您才真正需要它.您为每个程序集声明了一个不同的别名,因此您可以通过该别名引用它们.
不用说,你应该尽量避免陷入这种情况开始:)
Han*_*ant 30
它可以帮助你在版本控制中挖出一个非常深的洞.假设您的程序的第一个版本使用此类
using System;
namespace Acme.Financial.Banking {
[Serializable]
public class BankAccount {
public double Balance { get; set; }
//...
}
}
Run Code Online (Sandbox Code Playgroud)
你已经用它序列化了很多银行账户记录.一位会计师开始抱怨资产负债表被罚款十亿分之一,所以你改变了班级:
public decimal Balance { get; set; }
Run Code Online (Sandbox Code Playgroud)
问题解决了,下一位客户的资产负债表很快乐.在您被要求以旧格式升级包含大量序列化记录的现有客户之前.很大的问题,因为课程已经改变,你不能再反序列化记录了.
extern别名解决了您的问题,您可以在代码中引用类的旧版本和新版本,即使命名空间名称和类名称相同.
| 归档时间: |
|
| 查看次数: |
10794 次 |
| 最近记录: |