繼承 Collection<RouteBase> 並內部封裝 Dictionary<string, RouteBase> (_namedMap),同時支援索引存取與名稱查找。
| Route 特徵 | Collection | Dictionary |
|---|---|---|
| 有 Name | ✓ | ✓ (Key=Name) |
| 無 Name | ✓ | ✗ |
移除/設定項目時同步維護兩者一致性。
public IDisposable GetReadLock() {
_rwLock.AcquireReaderLock(-1);
return new ReadLockDisposable(_rwLock);
}
public IDisposable GetWriteLock() {
_rwLock.AcquireWriterLock(-1);
return new WriteLockDisposable(_rwLock);
}
巢狀 ReadLockDisposable/WriteLockDisposable 實作 IDisposable,配合 using 區塊自動釋放鎖定,極佳的鎖定模式範例。
GetRouteData:遍歷集合呼叫各 Route 比對,回傳首個成功的 RouteData。GetVirtualPath:依名稱或值集合生成虛擬路徑,自動加上應用程式路徑前綴。